Закрытие экземпляра

Я вызываю объекты Excel из MS Access, и мне не удается закрыть экземпляр!

Можно было бы подумать, что рабочие книги закрыты, потому что мы их больше не видим, но в диспетчере задач -> Процессы у меня все еще работает EXCEL.EXE * 32...

Вот что у меня есть:

Dim xlApp as Excel.Application
Dim wbks as Workbooks


    Set xlApp = GetObject("", "Excel.Application")
    Set wbks = xlApp.Workbooks
    wbks.Open "C:\blp\api\Office Tools\BloombergUI.xla"
    wbks("BloombergUI.xla").RunAutoMacros (xlAutoOpen)

    wbks.Add
    xlApp.Visible = True

...выполняет действия...

xlApp.Workbooks(1).SaveAs FileName:=strFullPath, FileFormat:=xlCSV

    xlApp.Application.DisplayAlerts = False
    xlApp.Workbooks("BbgDivData.csv").Close SaveChanges:=True
    wbks("BloombergUI.xla").Close

    xlApp.Quit
    Set xlApp = Nothing

Есть идеи, почему он все еще там? Я подозреваю, что надстройка все испортит!


person ProtoVB    schedule 04.12.2013    source источник
comment
wbks.Add, возможно, создает второй экземпляр Excel? Попробуйте явно создать новый объект Excel и создать в нем новую книгу для своих действий, а затем вызвать .quit для обоих.   -  person Alan Waage    schedule 05.12.2013
comment
Я склонен согласиться с вашими подозрениями, хотя, возможно, стоит пройтись по вашему коду в режиме отладки и посмотреть, что происходит в экземплярах диспетчера задач re excel на каждом этапе.   -  person John Bingham    schedule 06.12.2013
comment
возможный дубликат Удалить задачу Excel из задачи менеджер после запуска из Access с помощью VBA   -  person RubberDuck    schedule 29.12.2014


Ответы (1)


Вы никогда явно не устанавливаете для набора книг ничего, вы просто вызываете close из одного члена. Я бы попробовал добавить:

Set wbks = Nothing

после Close и до Quit.

person pteranodon    schedule 28.04.2014