从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的原因吗?任何强制执行事件的解决方案?也许我做错了什么......谢谢你的帮助!
答案 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