Vba 从其他工作簿调用宏会导致跳过宏
我正在尝试从工作簿执行以下操作(例如Vba 从其他工作簿调用宏会导致跳过宏,vba,excel,Vba,Excel,我正在尝试从工作簿执行以下操作(例如a.xlsm): 打开另一个工作簿(例如B.xlsb) 从a.xlsm调用B.xlsb中的宏 保存工作簿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&
a.xlsm
):
B.xlsb
)a.xlsm
调用B.xlsb
中的宏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")
最重要的是,可以正常工作,但是在B.xlsm
中跳过了宏(Initialize
,用于初始化功能区对象),在加载工作簿B.xlsb
时应调用该宏。当我手动打开它,然后保存并关闭时
我看到宏Workbook\u Open
,Workbook\u Activate
和Initialize
(这是在加载时用XML配置的)按顺序被调用。但是当我从VBA执行此操作时,会调用
Workbook\u Open
和Workbook\u Activate
,但会跳过Initialize
工作簿函数没有函数
初始化
。请参阅我知道它不是工作簿函数…这是在加载时使用XML配置调用的…因此,如果我打开工作簿,它将被配置为在调用工作簿函数后调用此方法(初始化)。您的B.xlsb
中的哪个函数正在调用Initialise
子函数?您还可以提供调用此sub的实际代码吗?我们正在使用一个名为Boardwalk的产品,它是在Excel上制作的。他们通过添加大量功能和自定义功能区菜单修改了Excel。我们对该产品进行了大量定制,以满足我们的具体要求。我问他们从哪里调用Initialize方法的问题,因为我找不到,他们回答说,他们在加载时使用XML配置调用它,而不知道如何调用函数,我对Broadwalk一无所知,不幸的是,我不能提供更多。希望你能解决这个问题