Код MSAccess VBA не открывает лист Excel, если Excel уже запущен - PullRequest
1 голос
/ 22 сентября 2011

Когда я открываю Excel в MS Access через следующий код VBA:

        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, даже если он уже запущен? Спасибо!

1 Ответ

2 голосов
/ 22 сентября 2011

Примерно так:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...