从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,那么我只有 1 个 Excel 窗口,其中 2 个文件打开,但以这种方式打开文件,Workbook_Open 事件会正确执行:
Workbooks.Open sFileB
我想在新应用程序中打开新的 excel sFileB,当然,我想执行 sFileB 的Workbook_Open代码。你知道为什么在第一种情况下没有执行Workbook_Open的原因吗?有什么解决方案可以强制执行事件吗?也许我做错了什么...感谢您的帮助!
使用这个
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:TmpxTemplate.xlsm")
'wb.Close False
'xlApp.Quit
End Sub
保罗的回答,我可以做更多的测试,发现重点是首先写 myApp.Visible = True 行,然后再写 myApp.Workbooks.Open sFileB 行。
所以这是最终的工作代码:
Set myApp = CreateObject("Excel.Application")
myApp.Visible = True
myApp.Workbooks.Open sFileB