在Excel 2007中安装VBAmacros

我在Excel 2003电子表格中有一个VBAmacros,我想在运行Excel的计算机上“安装”它。

我在本地机器上创build了一个'Trusted Location',并且我知道如何将模块复制到现有的工作簿并指定一个组合键来调用它,但是我不知道如何在有人启动Excel时使macros自动出现。 帮帮我?

最简单的解决scheme是(包括xl2003和xl2007)将包含macros的xls复制到客户端机器上的Path = Application.StartupPath (可以构build一个简单的vbscript安装程序,它可以实例化excel并检索这些信息)。

这样你的macros就可以在任何打开的工作簿中使用了,因为位于startuppath的xls文件是在excel启动时加载的。

我记得旧的方法是把你的macros保存在你的Personal.xls工作簿中,然后当你打开Excel的时候就可以访问这个macros了。

那是一种方式。 一个更好的方法是(现在是)创build一个加载项,然后您可以通过工具 – >加载项启用和禁用。 (即使closures并重新启动Excel,加载项也将保持启用状态)。 您可以将任何.XLS文件保存为加载项(.XLA)。

在您的加载项中,您可以使用Auto_Open方法:

 Private Sub Auto_Open() DoStuff End Sub 

…或者,你可以连接Workbook_Open事件,就像Ryan所说的那样。

当然,由于用户可以禁用加载项,所以还需要在Auto_Close (或Workbook_BeforeClose事件)中进行相反的操作。

实际上,如果使用事件,最好使用Workbook_AddinInstallWorkbook_AddinUninstall事件。 使用这些稍微更“正确”,并且还具有如下优点:如果closuresExcel,则“closures”事件不会触发,然后在提示保存时点击取消。

我不确定“出现”是什么意思,但可以通过调用它自动执行

 Private Sub Workbook_Open() End Sub 

ThisWorkbook对象模块中。 那是你在找什么?

我记得旧的方法是把你的macros保存在你的Personal.xls工作簿中,然后当你打开Excel的时候就可以访问这个macros了。