Excel不保存VBA引用

nvu*_*ono 2 excel vba excel-vba

我在一些VBA模块/类中创建了一个带有大量功能的Excel .xlsm文件,现在我决定将代码分开,因为它将在4个不同的站点共享.

我将vba_code.xlsm保存到共享位置并创建了我的4个不同的siteXYZ.xlsm文件.

在每个siteXYZ.xlsm文件中,我将转到VBA编辑器中的"工具|引用"菜单,并在共享文件位置\ share_location\fileLocation\vba_code.xlsm中添加对共享vba_code.xlsm的引用.

在这一点上,我测试了siteXYZ.xlsm中的函数,一切都会正常工作.

但是,每次我保存siteXYZ.xlsm,关闭Excel然后重新打开文件,它将丢失对我的vba_code.xlsm文件的引用.

如何使用siteXYZ.xlsm文件保存VBA引用?

nvu*_*ono 10

花了几个小时搜索答案并尝试各种方法,例如向vba_code.xlsm文件添加数字签名,并尝试以编程方式在Workbook_open上添加引用,我发现了一个描述问题的论坛帖子:

我的siteXYZ.xlsm文件中没有定义VBA代码或宏,因此Excel拒绝保存VBA项目,因此未将VBA引用保存到vba_code.xlsm.

解决方案很简单:

任何 VBA代码添加到siteXYZ.xlsm并保存.

我只是在VBA编辑器下双击ThisWorkbook,并向Workbook_open添加了一个不执行任何操作的函数:

Private Sub Workbook_open()

End Sub
Run Code Online (Sandbox Code Playgroud)

  • @Toddleson“Private Sub PreserveReferences(): End Sub”怎么样? (2认同)