VBA: Использование формулы VLOOKUP с динамическим lookup_value - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь вставить формулу VLOOKUP в свой последний столбец после выполнения форматирования на листе. Мое значение поиска для столбца, который имеет следующий заголовок столбца: «Состояние компании». Это мой текущий поток:

  1. Найдите номер столбца с помощью заголовка столбца: «Состояние компании»:

    CompanyStateColumnNumber = WorksheetFunction.Match("Company State", ws.Range("1:1"), 0)

  2. Объявить диапазон для поиска. В этом случае он существует в рабочей таблице / рабочей книге, которая не является активной рабочей книгой / рабочей таблицей. Следовательно, я ссылаюсь на него, используя (я уже объявил TZsrcRange как тип Range):

    Set TZsrchRange = TemplateWS.Range("A:C")

  3. Теперь я пытаюсь встроить vlookup в мой последний столбец (я нашел свой последний столбец на листе и он хранится в переменной "NewestLCol". Я хочу встраивать его в столбец до самого последняя строка (хранится в переменной "LastRow"):

    For x = 2 To LastRow
        Set dynamic_lookup_value = Cells(x, CompanyStateColumnNumber)
        Cells(x, NewestLCol).Formula = " =VLOOKUP(" & _
               dynamic_lookup_value.Address(0, 0) & _
             ", Templatews.Range(A:C).Address(0,0),3, FALSE)" 
    Next x
    
  4. Теперь, когда я запускаю его, он не встраивает формулу и не дает мне значения. В чем может быть моя проблема?

1 Ответ

0 голосов
/ 20 ноября 2018

Попробуйте заменить свое формульное назначение на это

Cells(x, NewestLCol).Formula = "=VLOOKUP(" & _
                                dynamic_lookup_value.Address(0, 0) & _
                                "," & _
                                TZsrchRange.Address(External:=True) & _
                                ",3, FALSE)"
...