我正在使用兩個工作簿,並試圖使用V-Lookup。我的查找值在WB1中,工作表2中,它們的相應值在WB2中,工作表1中。我的宏在WB1上運行,宏打開一個對話框供用戶選擇WB2文件。然後存儲關於文件的信息,例如文件名,文件路徑。應用程序定義的對象定義的錯誤 - Excel VBA Vlookup。適用於一個文件,但不適用於其他
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行上。這是爲什麼發生?
有很多可能的原因。文件名或表格名稱中的「1」空格。 '2-'VLooukup沒有找到任何匹配。 '3-'CurrentRegion不可靠(嘗試使用'UsedRange'而不是'Range(「A1」)。CurrentRegion')。 '4-'使用激活的東西使事情變得更糟,儘管可能不是當前錯誤的來源。 –
您可以**嘗試**將[[&FileName&「]」&SheetName&「!」'更改爲''[「&FileName&」]「&SheetName&」'!「'看看是否有幫助。這應該避免由文件名/工作表名稱中的無效字符(如空格)導致的大多數錯誤。 – YowE3K
有人可以解釋錯誤信息的含義嗎?應用程序定義或對象定義錯誤暗示什麼? – question610