0

我有一个 excel 加载项,我希望它在打开模板时运行某些宏。如果我打开 excel 然后手动运行 auto_open sub 但在打开 excel 时抛出“运行时错误 9。下标超出范围”,这运行良好。

似乎加载项正在加载并尝试在模板加载之前运行,以便在尝试引用工作簿中的特定工作表时找不到任何东西。

具体来说,错误出现在

Set shtData = Workbooks("Example_Template.xlsm").Worksheets("Test")

加载工作表后,如何强制运行 auto_open 宏?

我的自动打开代码是:

Sub Auto_Open()
   Set clsAppEvents = New clsApplicationEvents

   Application.Run "PerformanceOpen"

End Sub

我试图运行的宏包含:

Private Sub PerformanceOpen()

Dim shtData As Worksheet

Set shtData = Workbooks("Example_Template.xlsm").Worksheets("Test")
shtData.Activate
4

1 回答 1

1

加载工作表后,如何强制运行 auto_open 宏?

你不能。该Auto_Open宏专门用于在 Excel 启动后立即运行,在任何工作簿可用之前。

PerformanceOpen 中的代码需要放在 Workbook_Open 事件中。它可以是特定工作簿的 Open 事件,或者您可以研究cpearson 的有关应用程序级别事件的页面。这将允许您在打开任何工作簿或添加新工作簿时运行代码。

于 2013-07-30T12:47:50.590 回答