2014-02-13 92 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