我写了一个基于Excel的数据库报告工具.Currentely,所有VBA代码都与一个XLS文件相关联.用户通过单击工具栏上的按钮生成报告.不幸的是,除非用户将文件保存在另一个文件名下,否则所有报告的数据都将被清除.
当我在Word中创建类似的工具时,我可以将所有代码放在模板(.dot)文件中并从那里调用它.如果我将模板文件放在Office启动文件夹中,它将在每次启动Word时启动.是否有类似的方法,在Excel中打包和分发我的代码?我尝试过使用加载项,但是我找不到从应用程序窗口调用代码的方法.
只需将您的代码移动到Excel Addin(XLA) - 这会在启动时加载(假设它位于%AppData%\ Microsoft\Excel\XLSTART文件夹中)但如果它是一个插件,而不是一个工作簿,那么只有您的宏和已定义的启动将加载函数.
如果函数依赖于电子表格本身,那么您可能希望使用模板和插件的组合.
我正在分发这样的应用程序的一部分,我们有Word,Excel和Powerpoint(XLA,PPA,DOT)和Office 2007'功能区'版本(DOTM,XLAM和PPAM)的插件
如果没有找到addin启动代码创建工具栏按钮,这意味着在任何工作簿/文档/等中,他们只需按工具栏按钮即可运行我们的代码(我们有两个操作按钮和一个显示设置对话框的按钮)
模板并不是真正的VBA代码,Addins肯定是要走的路......
因此,要在启动时加载工具栏,我们正在使用类似的东西...(检查工具栏是否存在 - 代码将针对打开的每个工作表运行,但工具栏对于用户会话是持久的)
Public Sub Workbook_Open() ' startup code / add toolbar / load saved settings, etc. End Sub
希望有帮助:)