Excel 动态vlookup列范围选择给出错误1004
我在一本工作簿中研究动态vlookup。有多张纸。 首先,我一直在使用工作表函数通过列名(“标题名”)获取列号。它在工作时准确给出了列号 但当我试图在下面的代码中设置范围时,它给出了运行时错误1004Excel 动态vlookup列范围选择给出错误1004,excel,vba,Excel,Vba,我在一本工作簿中研究动态vlookup。有多张纸。 首先,我一直在使用工作表函数通过列名(“标题名”)获取列号。它在工作时准确给出了列号 但当我试图在下面的代码中设置范围时,它给出了运行时错误1004 Set srchRange=OB1.工作表(7).范围(“wsLCNo3,wsLCNo4”).实体集合。选择 我想在上面的代码中发送搜索范围,我想通过范围选择整个列:例如: Set srchRange=OB1.工作表(7).范围(“A:Z”) 以下是参考代码 wsLR = OB1.Workshee
Set srchRange=OB1.工作表(7).范围(“wsLCNo3,wsLCNo4”).实体集合。选择
我想在上面的代码中发送搜索范围,我想通过范围选择整个列:例如:Set srchRange=OB1.工作表(7).范围(“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
首先,确保wsLCNoX的值符合预期值,然后使用:
Set srchRange = OB1.Worksheets(7).Columns(wsLCNo3).Resize(,wsLCNo4)
范围(wsLCNo3&“:”&wsLCNo4)