Dynami c Выбор диапазона столбцов vlookup дает ошибку 1004 - PullRequest
0 голосов
/ 18 июня 2020

Я работаю над динамикой c vlookup в одной книге. Есть несколько листов. Во-первых, я использовал функцию рабочего листа, чтобы получить номер столбца через имя столбца («имя заголовка»). Он дает точно номер столбца во время работы.

Но когда я попытался установить диапазон в приведенном ниже коде, он выдает ошибку времени выполнения 1004.

Set srchRange = OB1.Worksheets(7).Range("wsLCNo3,wsLCNo4").EntireColumn.Select

Я хочу отправить диапазон поиска в приведенном выше коде, где я хочу выбрать весь столбец через диапазон: например:
Set srchRange = OB1.Worksheets(7).Range("A:Z")

Ниже приведен код для справки

wsLR = OB1.Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row

        wsLCNo1 = WorksheetFunction.Match("hs", OB1.Worksheets(2).Range("2:2"), 0) ' gives reference to column no
        wsLCNo2 = WorksheetFunction.Match("Schedulescope", OB1.Worksheets(2).Range("2:2"), 0) ' gives reference to column no
        wsLCNo3 = WorksheetFunction.Match("HW ", OB1.Worksheets(7).Range("2:2"), 0) ' gives reference to column no
        wsLCNo4 = WorksheetFunction.Match("SW scope", OB1.Worksheets(7).Range("2:2"), 0) ' gives reference to column no
        diff = (wsLCNo4 - wsLCNo3) + 1


        OB1.Worksheets(7).Activate



        Set srchRange = OB1.Worksheets(7).Range("wsLCNo3,wsLCNo4").EntireColumn.Select



         OB1.Worksheets(2).Activate
        For x = 3 To wsLR

            Set dynamic_lookup_value1 = Cells(x, wsLCNo1)
            OB1.Worksheets(7).Activate
            Set dynamic_lookup_value2 = Cells(x, wsLCNo3)
            Set dynamic_lookup_value3 = Cells(x, wsLCNo4)
            c1 = dynamic_lookup_value2.Address(0, 0)
            c2 = dynamic_lookup_value3.Address(0, 0)

            OB1.Worksheets(2).Activate


              Cells(x, wsLCNo2).Formula = "=VLOOKUP(" & _
                                        dynamic_lookup_value1.Address(0, 0) & _
                                        "," & _
                                        srchRange.Address(External:=True) & _
                                        "," & diff & ", FALSE)"

             Next x

1 Ответ

1 голос
/ 18 июня 2020

Сначала убедитесь, что значения wsLCNoX соответствуют вашим ожиданиям, затем используйте:

Set srchRange = OB1.Worksheets(7).Columns(wsLCNo3).Resize(,wsLCNo4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...