0
我有多個每月運行的SAS代碼。我想要一個包含所有代碼並可以運行每段代碼的Excel電子表格。從Excel中運行SAS代碼
首先,是否有一個簡單的方法來做到這一點?我認爲它只是調用代碼位置並從那裏運行它?我需要特別參考嗎?
我找到了這段代碼並試圖使用它,但我認爲有些問題,因爲它告訴我許可證已過期,但代碼在我使用excel運行時會起作用。
下面是VBA代碼:
Sub RunSAS()
'--> Verify Run Request (Exit If Cancelled)
a = MsgBox("Run " & ActiveCell.Value & "?", vbOKCancel, "Run SAS Program Confirmation")
If a = vbCancel Then
Exit Sub
End If
'--> Run SAS Program
Z = Shell("C:\Program Files\SAS\x86\SASFoundation\9.3\sas.exe -initstmt '%include """ & ActiveCell.Value & """/source2; run;'", vbNormalFocus)
'--> If Requested, Insert Run Time/Date In FIFO Order
' ('Run History' Must Appear In First Row Of Column To Right Of Program Name)
If UCase$(Trim(Cells(1, ActiveCell.Column + 1).Value)) = "RUN HISTORY" Then Cells (ActiveCell.Row, ActiveCell.Column + 1).Select
Selection.Insert Shift:=xlToRightCells(ActiveCell.Row, ActiveCell.Column + 1).Select
Selection.Copy Cells(ActiveCell.Row, ActiveCell.Column - 1).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.Value = Date & " " & Time()
Cells(ActiveCell.Row, ActiveCell.Column - 1).Select
Application.CutCopyMode = False
End If
End Sub
的SAS代碼我試圖執行是非常簡單的,只是試圖將自己發送電子郵件。
%INC 'H:\sasconnect\idwapid.inc';
OPTIONS COMAMID=tcp;
FILENAME RLINK '\\int\groupdata\IDW\sasscript\SAS93\sasap6\prod\Res_sasapv93_prod.scr';
%let host=idwap1 17554;
%let server=host;
SIGNON remote=&server;
RSUBMIT;
*** send email ***;
FILENAME eml2 email TO= ("[email protected]") SUBJECT="Test";
DATA _NULL_;
FILE eml2;
PUT "Email 3";
RUN;
endrsubmit;
signoff;
任何幫助,將不勝感激。