Я использую Window 7 SP1 и MS Office 2010. Я запускаю запросы в Access 2010 и записываю результаты в отчет в Excel 2010 и отмечаю, что экземпляр Excel не завершаться из списка процессов. Чтобы убедиться, что это не мой код, я разделил его.MSAccess 2010 VBA Excel Процесс не завершается
Следующий код открывает и завершает Excel, как и ожидалось:
Public Sub Test() Dim strRptDirPath As String: strRptDirPath = "C:\Projects\WeeklyAlarms\Report\" Dim xlApp As Object ' Dim xlWkBk As Object ' Dim xlWkSht As Object Dim strRptTl As String: strRptTl = "Report Template.xls" Dim strRptSht As String: strRptSht = "Rpt" Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False ' Set xlWkBk = xlApp.Workbooks.Open(strRptDir & strRptTl) ' Set xlWkSht = xlWkBk.Worksheets(strRptSht) ' ' xlWkSht.Cells(1, 1).Value = "TEST 1" ' xlWkSht.Cells(2, 2).Value = "TEST 2" ' xlWkSht.Cells(3, 3).Value = "TEST 3" ' ' xlWkBk.SaveAs (strRptDirPath & "TESTING.xls") ' xlWkBk.Close xlApp.Quit ' Set xlWkSht = Nothing ' Set xlWkBk = Nothing Set xlApp = Nothing End Sub
Однако, если я сослаться на книгу, экземпляр процесса Excel не завершается. Поиск по темам разговора делает ссылки на процесс, завершающийся после таймаута «ping» через период после закрытия Access - здесь это не так.
Public Sub Test() Dim strRptDirPath As String: strRptDirPath = "C:\Projects\WeeklyAlarms\Report\" Dim xlApp As Object Dim xlWkBk As Object ' Dim xlWkSht As Object Dim strRptTl As String: strRptTl = "Report Template.xls" Dim strRptSht As String: strRptSht = "Rpt" Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False Set xlWkBk = xlApp.Workbooks.Open(strRptDir & strRptTl) ' Set xlWkSht = xlWkBk.Worksheets(strRptSht) ' ' xlWkSht.Cells(1, 1).Value = "TEST 1" ' xlWkSht.Cells(2, 2).Value = "TEST 2" ' xlWkSht.Cells(3, 3).Value = "TEST 3" xlWkBk.SaveAs (strRptDirPath & "TESTING.xls") xlWkBk.Close xlApp.Quit ' Set xlWkSht = Nothing Set xlWkBk = Nothing Set xlApp = Nothing End Sub
У меня есть не-проверено Microsoft Excel 14,0 Object ссылку на библиотеку. Я не думаю, что сделал глобальные ссылки. Я не могу понять, что я делаю неправильно.
благодаря @Dane_l - я пробовал, но экземпляр Excel остается в списке процессов – totallychibi
Предполагаю, что вы отменили процесс, так что у вас нет процессов excel, после чего вы использовали этот код после? –
есть. End-Process-Tree для каждого экземпляра Excel. Если я открою созданный файл Excel и закрою его из приложения Excel, процесс завершится. Поскольку это подразумевает, что ссылка открыта, я попытался закрыть ее дважды с помощью [xlApp.ActiveWorkbook.Close], а также [xlWkBk.Close], но получил сообщение об ошибке, в котором нет активного соединения – totallychibi