我想創建一個將字符串作爲輸入的函數,在vlookup中使用此字符串作爲參數以從已關閉的工作簿中獲取值。在VBA中引用一個已關閉的工作簿的Vlookup
下面的代碼工作時的數據和字符串中的同一工作表都是:
Function get_value(inputString as String)
Dim dataRange as Range
Set dataRange = Range("A1:B4")
get_value = Application.WorksheetFunction.Vlookup(inputString, dataRange, 2, False)
End Function
簡單的引用的範圍(如下面的代碼)不工作(我認爲這是因爲功能無法處理Workbooks.Open就像Subs)。
Set workbookVariable = Application.Workbooks.Open(path_to_file)
dataRange = workbookVariable.Sheets(1).Range("A1:B4")
我的表(保存爲 'names.xls',保存在桌面)的樣子:
A | B
1 Olivia | Spaghetti
2 John | Steak
3 Samuel | Rice
4 Brian | Chicken
我希望要一個函數調用,如:
=的get_value(A1)和那會在A1中返回名字的食物。
如何調整我的代碼以便get_value也可以在其他工作簿上工作?
這可能會給你一個想法,沒有測試過你。在外部工作簿處於活動狀態時,從'Thisworkbook.Path&Application.PathSeparator&Range(「A1:B4」)。Address(External:= true)''從立即窗口獲取字符串。您可能需要其中的一部分並將連接設置爲該工作簿。 – PatricK
https://stackoverflow.com/a/42800024/4539709 – 0m3r
0m3r,不一樣的問題,我需要一個函數。 –