Я написал фрагмент кода в SAS EG, который просто открывает книгу Excel. Книга Excel содержит код VBA, который выполняется при событии «Workbook Open». Весь код в целом делает это, он обновляет все подключения к данным при первом открытии каждый день.Запуск Enterprise Enterprise Guide Работа на windows Server
Когда я запускаю программу SAS вручную, она работает точно так, как планировалось. Он открывает файл Excel, который, в свою очередь, запускает макрос VBA. Когда я планирую работу SAS EG на моем сервере, но выполняется Работа, но ничего не происходит с моим файлом Excel. Я также не получаю никаких ошибок в моем SAS-коде или в журнале Windows Scheduler Log.
Вот мой код SAS:
options noxwait noxsync;
x '"C:\Program Files\Microsoft Office\Office15\excel.exe" "\\route\to\file\excel_macro_playground.xlsm"';
run;
Вот мой VBA:
Private Sub Workbook_Open()
Dim wsSheet As Worksheet
On Error Resume Next
Set wsSheet = Sheets("book_helper")
On Error GoTo 0
If wsSheet Is Nothing Then
Sheets.Add.Name = "book_helper"
ActiveWorkbook.RefreshAll
Sheets("book_helper").Range("A1").Value = Date
Sheets("book_helper").Visible = xlVeryHidden
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
Else
If Sheets("book_helper").Range("A1").Value < Date Or Sheets("book_helper").Range("A1").Value = "" Then
ActiveWorkbook.RefreshAll
Sheets("book_helper").Range("A1").Value = Date
Sheets("book_helper").Visible = xlVeryHidden
'ActiveWorkbook.Close savechanges:=True
'Application.Quit
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End If
End If
End Sub
И тогда, конечно, я использую инструмент планирования SAS EG, чтобы настроить работу. Все мои другие задания работают нормально. Есть ли что-то, что мне нужно изменить, чтобы это работало так, как ожидалось?
Вы пробовали это: http://stackoverflow.com/questions/2050505/way-to-run-excel-macros-from-command-line-or-batch-file или это: http: // stackoverflow .com/вопросы/10881951/как к пуску-ан-первенствует-макро-из-командной строки-без-лист-открытого событие? – Ralph
@Ralph Мне удалось это исправить. По какой-то причине, когда я запускаю код SAS из Base SAS вместо EG, он работает. Спасибо в любом случае – Herm
Я не думал, что DDE работал в серверной или неинтерактивной среде, поскольку он использует ваш интерактивный сеанс. – Joe