我正在尝试根据提供的输入在运行时调用宏。
宏执行步骤如下所示
%(安培; macrovariable);
而macrovariable的值将在运行时提供。
这是可能的还是有什么方法可以实现这个目标?
答案 0 :(得分: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
答案 1 :(得分:1)
可能有另一种方法,但您可以在空数据步骤之后使用CALL EXECUTE
,如:
data _null_;
CodeToRun = cats('%',"&MyMacroName");
Call Execute (CodeToRun);
run;
CALL EXECUTE here上的一些背景和示例。