我正在使用两个工作簿,我正在尝试使用V-Lookup。我的查找值在WB1,Sheet 2中,它们的对应值在WB2,Sheet 1中。我的宏在WB1上运行,宏打开一个对话框,供用户选择WB2的文件。然后存储有关文件的信息,例如FileName,File path。
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
FilePath = Application.GetOpenFilename()
Set wb2 = Workbooks.Open(FilePath)
FileName = ActiveWorkbook.Name
SheetName = ActiveSheet.Name
RangeName = Range("A1").CurrentRegion.Offset(0, 1).Address
Workbooks(wb1).Activate
Range("D1:D" & LastRow).Formula = "=VLOOKUP(A1,[" & FileName & "]" & SheetName & "!" & RangeName & ",7,False)"
当我在一个文件上测试它时,Vlookup值出现了。但在我的第二个文件中,它一直给我错误应用程序定义或对象定义错误。它实际上是相同的代码。 Vlookup行上发生错误。为什么会这样?
答案 0 :(得分:0)
使用external:=true
获取表示查找范围地址的整个字符串。
with ActiveSheet
RangeName = .Range("A1").CurrentRegion.Offset(0, 1).Address(external:=true)
end with
您的公式分配变为,
Workbooks(wb1).worksheets("Sheet1").Range("D1:D" & LastRow).Formula = _
"=VLOOKUP(A1, " & RangeName & ", 7, False)"