如果Excel已在运行,MS Access VBA代码将无法打开Excel工作表

时间:2011-09-22 13:45:32

标签: excel ms-access vba

当我通过以下VBA代码在MS Access中打开excel时:

        Set objApp = GetObject(, "Excel.Application")  
        Set objApp = CreateObject("Excel.Application")
        objApp.Visible = True
        Set wb = objApp.Workbooks.Open("\\bk00sql0002\D_Root\Pre-Manufacturing\Excel\CommitmentLetter.xls", True, False)

如果Excel应用程序已在运行,则无法打开。我需要先关闭已运行的Excel应用程序,然后运行上面的代码,它将打开Excel。

即使Excel已经在运行,如何让Excel打开?谢谢!

1 个答案:

答案 0 :(得分:2)

这样的事情:

On Error Resume Next

Set objApp = GetObject(, "Excel.Application")

Do While Not objApp Is Nothing
  objApp.Quit
  Set objApp = GetObject(, "Excel.Application")
Loop

On Error GoTo 0

Set objApp = CreateObject("Excel.Application")

当Excel不能退出时,您可能还需要处理这种情况。


更新

使用现有的运行实例(而不是杀死它):

On Error Resume Next

Set objApp = GetObject(, "Excel.Application")

On Error GoTo 0

If objApp Is Nothing Then
  Set objApp = CreateObject("Excel.Application")
End if