Как закончить закрытие открытого файла excel при ошибке?

Я использую файл dos .bat для непрерывного запуска файла .vbs … Если возникает какая-либо ошибка, командный файл снова запускает vbscript, и он продолжается. Скрипт подключается через Интернет к сайту для выполнения некоторых вызовов api. Теперь, когда есть проблема с соединением или любая другая ошибка, элемент управления выходит из скрипта, сохраняя файл excel открытым. Таким образом, многие файлы excel открываются при каждой ошибке … Код выглядит следующим образом … пожалуйста, сообщите мне, как закрыть файл excel при ошибке, а затем выйти из скрипта изящно.

'{{{{Some coding}}}} dim objExcel, objWorkbook, objRange Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("C:\temp.xlsx") objExcel.Visible = True '{{{{Some coding}}}} objExcel.Cells(xlrow, 3).Value="Test" objExcel.Cells(xlrow, 3).Select objExcel.Activecell.Show '{{{{Some coding}}}} objExcel.Workbooks(1).save objExcel.Workbooks(1).close objExcel.Quit Set objExcel = Nothing Set objWorkbook = Nothing WScript.Quit 

заранее спасибо

Один из возможных подходов – обернуть обработку Excel в пользовательский класс:

 Class Excel Private xl Private Sub Class_Initialize Set xl = CreateObject("Excel.Application") End Sub Private Sub Class_Terminate For Each wb In xl.Workbooks wb.Saved = True 'discard unsaved changes wb.Close 'close workbook Next xl.Quit 'quit Excel End Sub Public Function OpenWorkbook(filename) Set OpenWorkbook = xl.Workbooks.Open(filename) End Function Public Function NewWorkbook Set NewWorkbook = xl.Workbooks.Add End Function Public Property Get Workbooks Set Workbooks = xl.Workbooks End Property End Class 

Процедура Class_Terminate автоматически вызывается всякий раз, когда экземпляр класса уничтожается. Таким образом, вы можете автоматически закрыть открытые книги и выйти из Excel.

Класс можно использовать следующим образом:

 Set xl = New Excel Set wb = xl.OpenWorkbook("C:\path\to\your.xlsx") ... wb.Close 
  • Анализ текста с условными регулярными выражениями в VBA
  • Как использовать «Экспорт в HP ALM» Addin для Excel с использованием макроса или VbScript
  • Использование VBScript для создания файлов CSV. Функция для обработки ценностей, чтобы сделать Excel счастливым
  • Внедрить и выполнить код Excel VBA в электронную таблицу, полученную от внешнего источника
  • Преобразование текстового файла в excel с разделителями и текстовыми колонками vbscript
  • Как выйти из более чем 1 цикла в Excel VBA?
  • Значения, записанные на новый рабочий лист, не сохраняются
  • Файл Excel HTML <br /> не распознается, пока я не щелкнул по ячейке
  • vbscript выбор различных строк в файле xlsx для команды range
  • программно добавить модуль в xls 2003 с помощью vbscript
  • VBScript Поиск книги Excel для значения из другой рабочей книги
  • Interesting Posts

    Запуск через внешнюю книгу со всей совпадающей строкой и скопировать ее в другую книгу

    нет данных для столбца строки в oledbdatareader

    Макрос изменяет имя вкладки

    Как получить доступ к Excel в качестве базы данных с помощью Java 8

    Вызов sub с двумя параметрами

    EXCEL VBA: как сбросить переключатель по умолчанию, нажав кнопку Command?

    Excel VBA – ActiveCell.Column в a для каждого цикла

    Найдите значение из диапазона ячеек в столбце на многих листах и ​​верните «X» в следующий пустой столбец

    Как совместить День и Час с одной датой

    Истекло время ожидания запроса при попытке выполнить короткую процедуру

    Возможно ли узнать, сколько соединений Oracle открыто в Excel VBA?

    Скопируйте все ячейки с данными с одного листа на другой

    Как применить одни и те же инструкции IF к нескольким ячейкам в одном столбце? (EXCEL)

    Добавление pandas.DataFrame в существующий файл Excel

    Не удалось изменить рабочий лист в надстройке Excel (Office js) после закрытия диалога

    Давайте будем гением компьютера.