VBA-скрипт для вставки формулы INDEX / MATCH с динамическими ссылками / массивами - PullRequest
0 голосов
/ 12 июня 2019

Я просто хочу вставить формулу INDEX / MATCH в столбец рядом с существующим выбором (это будет частью большего Sub).Массив ссылки / поиска в формуле должен быть динамическим.

До сих пор мне удалось успешно вставить формулу.Тем не менее, эталонные / поисковые массивы были введены мной вручную, так как я знаю текущий диапазон (который может измениться):

Selection.Offset(0, 1) = "=INDEX($J$3:$J$31,MATCH(INDIRECT(""RC[-2]"",0),$H$3:$H$31,0))"

Как я могу изменить $J$3:$J$31 а $H$3:$H$31 обновлять динамически?У меня был успех отдельно с чем-то вроде 'Range ("J3", Range ("J3"). End (xlDown)) ", но я не могу включить это в приведенный выше код.

1 Ответ

0 голосов
/ 12 июня 2019

Вы можете интегрировать переменные в формулу, это становится немного сложнее, и я думаю, что есть лучшие способы сделать это, но это метод, который я использую, когда мне нужны динамические диапазоны в формулах в VBA.Ниже приведен пример, который должен помочь:

Я предполагаю, что J3 и H3 останутся прежними, но конец диапазона - это то, что вы ожидаете изменить.Если это не так, дайте мне знать.

По сути, вы заменяете «31» в ссылке на диапазон на «& [variable] &» (включая кавычки).

EDIT: Я использую Sheet1 в качестве примера для подсчета строк;так что просто обновите это до того, какой бы применимый лист & диапазон был бы.

    Dim rCount As Long
    rCount = Sheet1.Range("A" & Rows.Count).End(xlUp).Row

    Selection.Offset(0, 1) = "=INDEX($J$3:$J$" & rCount & ",MATCH(INDIRECT(""RC[-2]"",0),$H$3:$H$" & rCount & ",0))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...