1

У меня есть лист Excel, в котором есть несколько форм. Формы выглядят одинаково, и между ними есть абсолютно одинаковые ячейки. Они заказаны в 4 х 3:

x x x x
x x x x
x x x x

x x x x
....

Их 60, и после трех столбцов между ними вместо одной находятся две ячейки.

Теперь мой вопрос.

Если у меня есть верхний левый угловой адрес первой формы, как я могу "сгенерировать" следующий адрес следующей формы?

От первого верхнего левого угла до следующего - пространство из 9 полей. От первого верхнего левого угла первой формы до следующей формы внизу есть 17 полей.

1 ответ1

1

Вы можете использовать функцию OFFSET

OFFSET(ссылка, строки, столбцы, [высота], [ширина])

  • Ссылка обязательна. Ссылка, из которой вы хотите основать смещение. Ссылка должна относиться к ячейке или диапазону соседних ячеек; в противном случае OFFSET возвращает значение #VALUE! значение ошибки.
  • Требуется ряд Количество строк, вверх или вниз, к которым вы хотите обратиться в верхнюю левую ячейку. Использование 5 в качестве аргумента строки указывает, что верхняя левая ячейка в ссылке на пять строк ниже ссылки. Строки могут быть положительными (что означает ниже начальной ссылки) или отрицательными (что означает выше начальной ссылки).
  • Колс Требуется. Число столбцов слева или справа, на которые вы хотите, чтобы левая верхняя ячейка результата ссылалась. Использование 5 в качестве аргумента cols указывает, что верхняя левая ячейка в ссылке имеет пять столбцов справа от ссылки. Цули могут быть положительными (что означает справа от начальной ссылки) или отрицательными (что означает слева от начальной ссылки).

[EDITED] Если вы объединили ячейки, вы можете использовать MergedArea (VBA) следующим образом:

Set MA = Range("G14").MergeArea
NewAddress = MA.Offset(...)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .