Excel:在新应用程序中打开工作簿不会运行Workbook_Open事件

时间:2018-04-11 08:47:12

标签: excel vba

从Excel A的代码中,我想打开Excel B。

使用此代码,新Excel将在新的Excel应用程序中打开,因此您有2个独立的Excel窗口,但是!不执行sFileB的Workbook_Open代码:

Dim myApp As New Excel.Application
myApp.Workbooks.Open sFileB
myApp.Visible = True

如果我在同一个应用程序中打开新的Excel,那么我只有一个Excel窗口打开了2个文件,但是以这种方式打开文件正确执行了Workbook_Open事件:

Workbooks.Open sFileB

我想在新的应用程序中打开新的excel sFileB,当然,我想执行sFileB的Workbook_Open代码。 你知道为什么在第一种情况下没有执行Workbook_Open的原因吗?任何强制执行事件的解决方案?也许我做错了什么......谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

使用此

Option Explicit

Public Sub OpenXLFileInNewInstance()

    Dim xlApp As Excel.Application, wb As Workbook

    Set xlApp = CreateObject("Excel.Application")

    xlApp.Visible = True

    Set wb = xlApp.Workbooks.Open("D:\Tmp\xTemplate.xlsm")

    'wb.Close False
    'xlApp.Quit

End Sub

答案 1 :(得分:0)

感谢Paul的回答,我可以做更多测试,并发现重点是先写 myApp.Visible = True myApp.Workbooks 。打开sFileB

所以这是最终的工作代码:

Set myApp = CreateObject("Excel.Application")
myApp.Visible = True
myApp.Workbooks.Open sFileB