Access 2007 VBA-打开两个Excel工作簿



我正在使用Access 2007。在我的Access文件中,我有打开Excel的VBA代码Access程序启动时的工作簿。Excel工作簿保持打开状态程序运行时。我使用以下代码打开工作簿:

Public xl As Object
Public wb1 As Object
Set xl = New Excel.Application
Set wb1 = xl.Workbooks.Open("c:Book1.xlsx")

现在,当程序运行时,我可能需要打开第二个Excel工作簿,从中获取一些数据,然后关闭它。我使用了以下代码:

Public wb2 As Object
Set wb2 = xl.Workbooks.Open("c:Book2.xlsx")

但这行不通。第一个工作簿似乎已关闭,因为如果我进行debug.print工作簿。计数响应为"0"。

关于如何打开第二个工作簿并仍然打开第一个工作簿,有什么建议吗?我应该创建第二个Excel实例并使用它打开第二个工作簿吗?

谢谢。

您可能会更幸运地使用此过程:

Sub OpenExcel(fName As String)
Dim xlApp As Object
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
'Excel wasn't running, start it from code
Set xlApp = CreateObject("Excel.Application")
End If
On Error GoTo 0
xlApp.Workbooks.Open (fName)
End Sub

使用您的代码,Excel可能正在打开,但第二个工作簿没有默认为可见,这可以用xl.Visible = True设置。或者,第二个xl对象可能会有所帮助。

无论如何,这种方法是安全的许多方法。

确保完成后,确保使用xlApp.QuitSet xlApp = Nothing之类的东西清理(并释放内存(。

事实上,我建议你现在就重新启动。。。在此之前,请查看任务管理器中运行的进程-如果您有几个"不可见"的Excel实例在运行,我不会感到惊讶。:(

最新更新