我想将工作簿用作VBA库,其中包含我在项目中通常使用的函数和子例程。我想这样做,以便我可以在一处编辑这些常用的片段,然后我的所有项目将始终使用它们进行更新。我想在我的项目中访问这些功能和子程序,而不必同时打开库文件。
几个小时的谷歌搜索使我有几种选择:
制作DLL
将文件另存为.xlam
将.xlsm作为库引用
选项1可能有效,但是我不熟悉并且无法访问所需的程序。我已经找到了有关使用VB制作DLL的教程,但我担心添加新脚本将需要再次执行整个过程来更新它,然后我需要在使用DLL的工作簿中更新引用。
选项2似乎根本不起作用。 “图书馆”工作簿似乎已在VBA编辑器中打开,但是我似乎无法从主书中调用其中的脚本。我认为此选项更适合在Excel本身中使用脚本。
选项3是我决定尝试进行的工作,但是它总是会同时打开库工作表。尝试关闭“图书馆”书时出现以下错误:该工作簿当前被其他工作簿引用,并且无法关闭
是否可以将.xlsm文件作为库而不同时打开该文件?
此外,如果我对其他选项的理解不正确,或者如果您有更好的解决方案可以推荐,请分享。
修改
经过更多测试并考虑了下面的评论,我发现如果使用Application.Run("macro")
,可以使选项#2正常工作。谢谢!