在Excel 2007中安装VBA宏
我在Excel2003电子表格中有一个VBA宏,我想在运行Excel的机器上“安装”它在Excel 2007中安装VBA宏,excel,excel-2007,vba,Excel,Excel 2007,Vba,我在Excel2003电子表格中有一个VBA宏,我想在运行Excel的机器上“安装”它 我在本地计算机上创建了一个“受信任的位置”,我知道如何将模块复制到现有工作簿,并分配一个键组合来调用它,但我不知道如何使宏在有人启动Excel时自动显示。帮助?我不知道你说的“出现”是什么意思,但是你可以通过从中调用来自动执行它 Private Sub Workbook_Open() End Sub 在此工作簿的对象模块中。这就是您要找的吗?我不确定您所说的“出现”是什么意思,但您可以通过从中调用来自动执
我在本地计算机上创建了一个“受信任的位置”,我知道如何将模块复制到现有工作簿,并分配一个键组合来调用它,但我不知道如何使宏在有人启动Excel时自动显示。帮助?我不知道你说的“出现”是什么意思,但是你可以通过从中调用来自动执行它
Private Sub Workbook_Open()
End Sub
在
此工作簿的对象模块中。这就是您要找的吗?我不确定您所说的“出现”是什么意思,但您可以通过从中调用来自动执行它
Private Sub Workbook_Open()
End Sub
在此工作簿的对象模块中。这就是您要找的吗?我记得以前的方法是将宏保存在Personal.xls
工作簿中,然后在您打开Excel时随时可以访问它-这在2007年发生了变化吗?我记得以前的方法是将宏保存在Personal.xls
工作簿中,然后它随时可以访问您打开了Excel-2007年是否已更改
我记得以前的方法是将宏保存在Personal.xls中
工作簿-这样就可以访问它了
您在任何时候打开Excel-2007年是否发生了变化
那是一种方式。更好的方法是(现在也是)创建外接程序,然后可以通过工具->外接程序启用和禁用该外接程序。(即使关闭并重新启动Excel,外接程序仍将保持启用状态)。您可以将任何.XLS文件另存为外接程序(.XLA)
在外接程序中,您可以使用Auto\u Open
方法:
Private Sub Auto_Open()
DoStuff
End Sub
…或者,您可以按照Ryan的建议,连接工作簿\u Open
事件
当然,由于用户可以禁用外接程序,因此您还需要在Auto\u Close
中(或在Workbook\u BeforeClose
事件中)执行相反的操作
实际上,如果您使用事件,最好使用工作簿添加安装和工作簿添加安装事件。使用这些选项更为“正确”,还有一个好处,即如果关闭Excel,然后在提示保存时单击“取消”,则不会触发“关闭”事件
我记得以前的方法是将宏保存在Personal.xls中
工作簿-这样就可以访问它了
您在任何时候打开Excel-2007年是否发生了变化
那是一种方式。更好的方法是(现在也是)创建外接程序,然后可以通过工具->外接程序启用和禁用该外接程序。(即使关闭并重新启动Excel,外接程序仍将保持启用状态)。您可以将任何.XLS文件另存为外接程序(.XLA)
在外接程序中,您可以使用Auto\u Open
方法:
Private Sub Auto_Open()
DoStuff
End Sub
…或者,您可以按照Ryan的建议,连接工作簿\u Open
事件
当然,由于用户可以禁用外接程序,因此您还需要在Auto\u Close
中(或在Workbook\u BeforeClose
事件中)执行相反的操作
实际上,如果您使用事件,最好使用工作簿添加安装和工作簿添加安装事件。使用这些选项更“正确”,还有一个好处,即如果关闭Excel,然后在提示保存时单击“取消”,则不会触发“关闭”事件。最简单的解决方案是(对于xl2003和xl2007),将包含宏的xls从客户端计算机复制到path=应用程序。StartupPath
(可以构建一个简单的vbscript安装程序,用于实例化excel并检索此信息)
这样,您的宏就可以在任何打开的工作簿中使用,因为startuppath中的xls文件是在excel启动时加载的。最简单的解决方案是(对于xl2003和xl2007),将包含宏的xls从您的客户端计算机复制到路径=应用程序。startuppath
(可以构建一个简单的vbscript安装程序,用于实例化excel并检索此信息)
这样,您的宏就可以在任何打开的工作簿中使用,因为位于startuppath中的xls文件是在excel启动时加载的。+1表示更干净(尽管要求更高)的解决方案。这听起来像是“正确的方法”。+1表示更干净(尽管要求更高)的解决方案。这听起来像是“正确的方法”。