2014-02-13 111 views
4

我想在運行時根據提供的輸入調用宏。SAS宏執行

宏執行步驟將是如下面

%(& macrovariable);

而宏觀變量的值將在運行時提供。

這是可能的還是有什麼辦法達到這個目的?

回答

1

有可能是另一種方式,但你可以像一個空數據步驟之後使用CALL EXECUTE

data _null_; 
    CodeToRun = cats('%',"&MyMacroName"); 
    Call Execute (CodeToRun); 
run; 

的一些背景知識和實例上CALL EXECUTE here

5

簡單。

%macro test(a); 
%put Test says &a; 
%mend; 

%let mymacro = test; 

%&mymacro(Hello World); 

返回

8239 %macro test(a); 
8240 %put Test says &a; 
8241 %mend; 
8242 
8243 %let mymacro = test; 
8244 
8245 %&mymacro(Hello World); 
Test says Hello World