Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 从其他工作簿调用宏会导致跳过宏_Vba_Excel - Fatal编程技术网

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一无所知,不幸的是,我不能提供更多。希望你能解决这个问题