我有一个excel加载项,我希望它在打开模板时运行某些宏 . 如果我打开excel然后手动运行auto_open子,但在打开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
1 回答
你不能 .
Auto_Open
宏专门用于在Excel启动之前,任何工作簿可用之前运行 .PerformanceOpen中的代码需要放在Workbook_Open事件中 . 它可以是特定工作簿的Open事件,也可以研究有关应用程序级事件的cpearson's page . 这将允许您在打开任何工作簿或添加新工作簿时运行代码 .