我尝试从工作簿中执行以下操作(说A.xlsm
):
B.xlsb
)B.xlsb
A.xlsm
中的宏
B.xlsb
B.xlsb
以下是A.xlsm
中的代码:
Workbooks.Open(Filename:=B.xlsb).RunAutoMacros Which:=xlAutoOpen
Workbooks(B.xlsb).Activate
Windows(B.xlsb).Activate
Application.Run (B.xlsb& "!MyMacro")
最重要的是,但是在Initialize
中会跳过用于初始化功能区对象的宏(B.xlsm
),这应该在加载工作簿时调用{{1} }}。当我手动打开它然后保存并关闭。
我看到宏B.xlsb
,Workbook_Open
和Workbook_Activate
(这是在加载时调用的XML中配置)按顺序调用。
但是当我从VBA进行调用时,Initialize
和Workbook_Open
被调用,但Workbook_Activate
被跳过。