2013-07-01 45 views
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; 

任何幫助,將不勝感激。

回答