打包和分发Excel应用程序的最佳方法是什么

问题描述 投票:3回答:5

我已经编写了基于Excel的数据库报告工具。当前,所有VBA代码都与单个XLS文件关联。用户通过单击工具栏上的按钮来生成报告。不幸的是,除非用户将文件保存为另一个文件名,否则所有报告的数据都会被清除。

当我在Word中创建了类似的工具时,可以将所有代码放在模板(.dot)文件中,然后从那里进行调用。如果将模板文件放在Office启动文件夹中,它将在每次启动Word时启动。有没有类似的方法可以在Excel中打包和分发我的代码?我尝试使用外接程序,但是找不到从应用程序窗口调用代码的方法。

excel vba office-addins
5个回答
2
投票

您可以修改存储在excel启动目录中的用户的personal.xls文件(在Office版本之间有所不同)。如果您有很多用户,那可能就很奇怪了。

解决问题的另一种方法是将宏存储在模板(.xlt)文件中。然后,当用户打开它时,他们无法将其保存回原始文件,而必须指定一个新文件名将其另存为。此方法的缺点是,随即在每个位置保存了原始文件的多个副本。如果您修改了原始.xlt文件,并且有人在先前保存的.xls文件中重新运行了旧宏,那么事情可能会步履蹒跚。


10
投票

只需将代码移至Excel加载项(XLA)-在启动时会加载该代码(假设它位于%AppData%\ Microsoft \ Excel \ XLSTART文件夹中),但如果是加载项而不是工作簿,则仅是宏和定义的启动功能将被加载。


2
投票

我总是使用外接程序(xla)/模板(xlt)组合。您的外接程序将创建菜单(或其他UI入口点)并根据需要加载模板。它还将要持久保存的数据写入数据库(Access,SQLServer,文本文件,甚至是xls文件)。


0
投票

您是否调查了ClickOnce部署Excel文件?


0
投票

如何将excel保存到具有只读权限的网络文件夹?可以使用集成的Windows身份验证来完成身份验证,您无需在VBA中将连接密码存储到数据库中。然后,您只需要将指向该位置的链接分发给您的用户一次。如果要进行更新,则仅更改该文件夹中的数据,而无需用户通知。

© www.soinside.com 2019 - 2024. All rights reserved.