我目前使用 UDF 从我的个人工作簿中的表中查找值,它可以按我的需要工作。但是,我希望能够与我一起工作的其他人分享这个 UDF。我将我的保存在 .xlam 中并作为插件加载。我正在寻找一种解决方案,我可以在其中引用共享服务器上共享的一个工作簿。这样做的原因是表需要每月更新一到几次,如果一个人更新主表而不是每个人都更新他们的个人工作簿,那会更容易。
根据我的阅读,您不能使用 UDF 来引用尚未打开的工作簿。我希望有人可以让我知道是否有另一种方法可以实现我希望做的事情。
Function region(profit_center)
Dim pc_range As Range
Set pc_range = Workbooks("PERSONAL.xlsb").Sheets("Profit Center").Range("J1:K800")
region = Application.WorksheetFunction.VLookup(profit_center, pc_range, 2, False)
End Function
在阅读了其他一些答案后,我的印象是 Index 可以从 Application.WorksheetFunction.Index 读取已关闭的工作簿,但是当我尝试此代码时出现值错误:
Function region_Index(profit_center)
Dim pc_range1 As Range
Dim pc_range2 As Range
Set pc_range1 = Workbooks("UNC filepath").Sheets("Profit Center").Range("J1:K800")
Set pc_range2 = Workbooks("UNC filepath").Sheets("Profit Center").Range("J1:J800")
region_Index = Application.WorksheetFunction.Index(pc_range1, Application.WorksheetFunction.Match(profit_center,pc_range2,0),2)
End Function
此代码在我引用打开的工作簿时有效,但在引用关闭的工作簿时需要它工作。同样,我可以使用 VBA 和插件来实现我的目标,但我不确定最好的方法。