【发布时间】:2020-10-08 02:32:00
【问题描述】:
我正在处理单个工作簿中的动态 vlookup。有多张纸。 首先,我一直在使用 Worksheet 函数通过列名(“标题名称”)获取列号。它在工作时准确给出列号。
但是当我尝试在下面的代码中设置范围时,它给出了运行时错误 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
【问题讨论】:
-
Range(wsLCNo3 & ":" & wsLCNo4)