Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 动态vlookup列范围选择给出错误1004_Excel_Vba - Fatal编程技术网

Excel 动态vlookup列范围选择给出错误1004

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

我在一本工作簿中研究动态vlookup。有多张纸。 首先,我一直在使用工作表函数通过列名(“标题名”)获取列号。它在工作时准确给出了列号

但当我试图在下面的代码中设置范围时,它给出了运行时错误1004

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)