有两个工作簿:视图 foo.xlsm 和控件 bar.xlsm ,它从 foo.xlsm 加载 Workbooks.Open() - 方法并包含视图所需的VBA代码。这样做是因为 bar.xlsm 有多条可能的路径,必须先检查。
Set wC = Workbooks.Open("path\bar.xlsm", ReadOnly:=True, Editable:=False, AddToMru:=False)
在 foo.xlsm 中,有一个公式引用了 bar.xlsm 中的宏函数:
=bar.xlsm!functionName(parameter)
问题在于,每次启动时,excel都会修改指向 bar.xlsm 成功加载的最后一个路径的链接,e.x。:
='C:/Users/X/Desktop/bar.xlsm'!functionName(parameter)
此行为是不受欢迎的,因为 bar.xlsm 的路径可以并且将会更改。如何防止excel完全建立这个链接?
答案 0 :(得分:0)
与此同时,我发现了一个简单的解决方法。我使用视图工作簿中的包装函数调用所需的方法:
Public Function functionWrapper() As Integer
functionWrapper = Application.Run("bar.xlsm!functionName(parameter)")
End Function
在所需的单元格公式内调用包装函数,如下所示:
=functionWrapper(parameter)