【发布时间】:2017-02-23 03:25:33
【问题描述】:
我想要一个程序,它遍历一个宏变量名列表,并返回 %DO 循环中每个宏变量的值,而不是只返回宏变量名。
%let macro_list = AA BB CC;
%let loop = %sysfunc(countw(¯o_list.));
%let AA = 123;
%let BB = 456;
%let CC = 789;
%macro test();
%do i = 1 %to &loop.;
%let var = %scan(¯o_list.,&i);
%put &var.; /* I want this to return 123 not AA!!!*/
%end;
%mend test;
%test;
当前宏返回 AA、BB、CC 的值,而不是 123、456、789。
我也愿意接受其他方式来实现这一点。谢谢!
【问题讨论】:
-
当您请求
&var时,它会返回列表中的var的值。向它询问&&var.,它返回&AA,然后解析为 123。谷歌“解析双 & 号 SAS”以获取更多信息。