首页 文章

VBA加载项无法在自动打开时引用工作表

提问于
浏览
0

我有一个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 回答

  • 1

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

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

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

相关问题