Я работаю над динамикой 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