有没有办法让每次打开Excel文件时运行的VBA脚本?

时间:2015-07-06 15:10:38

标签: excel vba excel-vba

我正在寻找的是在每个创建的excel文件上运行auto_open()函数。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:1)

您需要一个包含要运行的代码的单独工作簿 - 例如,您的个人宏工作簿。在该工作簿的Thisworkbook模块中,添加以下内容:

Private WithEvents appExcel As Excel.Application
Private Sub Workbook_Open()
   Set appExcel = Application
End Sub

Private Sub appExcel_WorkbookOpen(ByVal Wb As Workbook)
    Call Macro1
End Sub

其中Macro1是您要为每个工作簿运行的代码。

答案 1 :(得分:1)

  1. 在即时窗口中输入?Application.StartupPath以查找您的XLSTART文件夹。
  2. 在此文件夹中,会有一个名为Book.xlt的模板文件或类似内容。
  3. 打开该文件并将Auto_Open()事件放在该模板中,然后将其另存为XLSTART文件夹中的模板。确保它实际保存在正确的位置并覆盖原始模板。注意:您可能必须将模板文件类型更改为.xltm并删除原始.xlt版本,因为其中将包含宏。
  4. 您的Auto_Open()事件现在应该出现在您创建的每个新文件中。
  5. Automatically open a workbook template or worksheet template when you start Excel