2015-07-14 4 views
0

У меня есть запланированная задача, которая запускает скрипт vb, который, в свою очередь, запускает макрос в excel. Все работает нормально (так как я получаю результаты, которые я хочу), однако запланированное задание остается «запущенным» и, следовательно, не начинается снова на следующее утро. VB Script выглядит следующим образом:VBS Не прекращает работу

Option Explicit 

Dim xlApp, xlBook 

Set xlApp = CreateObject("Excel.Application") 
Set xlBook = xlApp.Workbooks.Open("C:\MyPath\My File.xlsm", 0, True) 
xlApp.Run "myMacro" 
xlBook.Close 
xlApp.Quit 

Set xlBook = Nothing 
Set xlApp = Nothing 

WScript.Quit 

конец макроса (все предшествующее код работает и сохраняет свой выход CSV, как это требуется):

 Workbooks("My File.xlsm").Activate 
     Worksheets("Outputs").Select 
     'ActiveWorkbook.Save 
     'ActiveWorkbook.Close - this line cause vbs to fail after creating my csv 
     Application.ScreenUpdating = True 
     Application.DisplayAlerts = True 

    End Sub 

Как прекратить VB Script, чтобы остановить запуск запланированной задачи?

+1

Если CSV был сохранен, вы можете использовать 'ActiveWorkbook.Close False' для закрытия книги без дальнейшей экономии? – Jeeped

+0

К сожалению, сценарий по-прежнему не работает с ошибкой 800APC68 Неизвестная ошибка выполнения. Если я удалю эту строку, вот тогда это не ошибка ..... но не останавливается! –

+0

Если у вас есть интерактивный скрипт, который работает вне Планировщика заданий, но не включен, проверьте следующее: [http://blogs.technet.com/b/askperf/archive/2015/02/18/help-my-scheduled- задача-ли-не-run.aspx] (http://blogs.technet.com/b/askperf/archive/2015/02/18/help-my-scheduled-task-does-not-run.aspx) – Bond

ответ

0

К сожалению, как вы поняли:

Workbooks("My File.xlsm").Activate 
    Worksheets("Outputs").Select 
    'ActiveWorkbook.Save 
    'ActiveWorkbook.Close - this line cause vbs to fail after creating my csv 
    Application.ScreenUpdating = True 
    Application.DisplayAlerts = True 

будет выдавать ошибку из-за того, что объект xlBook пытается закрыть уже закрытую книгу. Я считаю, что если вы обновляете VBScript для:

Option Explicit 

Dim xlApp, xlBook 

Set xlApp = CreateObject("Excel.Application") 
Set xlBook = xlApp.Workbooks.Open("C:\MyPath\My File.xlsm", 0, True) 
xlApp.Run "myMacro" 
'xlBook.Close Remove this line 
xlApp.Quit 

Set xlBook = Nothing 
Set xlApp = Nothing 

WScript.Quit 

и добавить обратно линии ActiveWorkbook.Save и ActiveWorkbook.Close, вы VBScript & Excel приложение должно закрыть правильно.

Смежные вопросы