Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 VBA:如何创建具有唯一范围和多个工作表的VLOOKUP?_Vba_Excel_Vlookup - Fatal编程技术网

Excel VBA:如何创建具有唯一范围和多个工作表的VLOOKUP?

Excel VBA:如何创建具有唯一范围和多个工作表的VLOOKUP?,vba,excel,vlookup,Vba,Excel,Vlookup,我还是vba新手,目前正在尝试编写一段代码,其中它从源代码表和输出表执行vlookup,并将其放入输出表中。我需要对整个列A(每个月的行数不同)执行vlookup,并将其放在列G中。每当我尝试运行它时,它都会显示“错误438:对象不支持此属性或方法”。我在网上的某个地方找到了此代码,并尝试更改它以匹配我的数据。我猜我的sourceSheet没有分配给该工作表,即使我指定了它?有人能帮忙吗 这是我的密码: Sub Vlookup() Dim SourceLastRow As Long Dim Ou

我还是vba新手,目前正在尝试编写一段代码,其中它从源代码表和输出表执行vlookup,并将其放入输出表中。我需要对整个列A(每个月的行数不同)执行vlookup,并将其放在列G中。每当我尝试运行它时,它都会显示“错误438:对象不支持此属性或方法”。我在网上的某个地方找到了此代码,并尝试更改它以匹配我的数据。我猜我的sourceSheet没有分配给该工作表,即使我指定了它?有人能帮忙吗

这是我的密码:

Sub Vlookup()
Dim SourceLastRow As Long
Dim OutputLastRow As Long
Dim sourceSheet As Worksheet
Dim outputSheet As Worksheet
Set sourceSheet = Worksheets("Data1")
Set outputSheet = Worksheets("Info2")
With sourceSheet
     SourceLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
With outputSheet
    OutputLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
  'This is the line where I keep getting the error:
 .Range("G2:G" & OutputLastRow).Formula = _
             "=VLOOKUP(A2,'" & sourceSheet & "'!$A$2:$B$" & SourceLastRow & ",2,0)"
    End With
    End Sub

你指的是工作表本身,不是它的名字。尝试:

.Range("G2:G" & OutputLastRow).Formula = _
         "=VLOOKUP(A2,'" & sourceSheet.Name & "'!$A$2:$B$" & SourceLastRow & ",2,0)"

sourceSheet.Name
@ScottCraner我最初使用它,虽然它没有引起错误,但我的vlookup结果一直是“#REF!”您不需要限制vlookup
”=vlookup(A2,“&sourceSheet.Name&”!$A:$B,2,FALSE)”中的查找范围。