在Windows Server上运行SAS Enterprise Guide Job

时间:2015-06-29 10:43:54

标签: excel vba excel-vba sas enterprise-guide

我在SAS EG中编写了一段只打开Excel工作簿的代码。 Excel工作簿包含在“工作簿打开”事件上执行的VBA代码。所有代码都是如此,它是在每天第一次打开时刷新所有数据连接。

当我手动运行SAS程序时,它完全按计划运行。它打开Excel文件,然后触发VBA宏。但是,当我在我的服务器上安排SAS EG作业时,作业运行但我的Excel文件没有任何反应。我的SAS代码或My Windows Scheduler日志中也没有出现任何错误。

这是我的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 Scheduling工具来设置工作。我所有的其他工作都运行得很好。我需要改变一些东西才能使其按预期工作吗?

1 个答案:

答案 0 :(得分:1)

我同意Joe对DDE的评论,认为它不会起作用,但是你通过X命令做的事情就像在命令行上进行系统调用一样,而不是DDE。如果要调试系统调用,请尝试使用FileName Pipe语法在SAS日志中查看命令输出。

在你的情况下......

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li>
    <a id='ajaxLoad1' onclick='ajaxFunc(event, this);' href="url1">1st content</a>
</li>
<li>
    <a id='ajaxLoad2' onclick='ajaxFunc(event, this);' href="url2">2nd content</a>
</li>

<div id='contentDiv' style="background: #98bf21; height: 200px; width: 800px;  position: absolute;"></div>

我还注意到你.xslm的示例路径使用&#34; \\&#34;,如果实际路径是这样开始那么可能是你的问题。您不能在这样的标准系统调用中使用UNC路径(某些命令行程序允许它们)。您需要先映射文件服务器并共享到驱动器。请告诉我,如果您需要,我可以帮助您。