【发布时间】:2017-07-17 22:47:32
【问题描述】:
我想创建一个将字符串作为输入的函数,在 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)的字符串。您可能需要其中的一部分并设置与该工作簿的连接。 -
0m3r,不是同一个问题,我需要一个函数。