我想要一个循环遍历宏变量名列表的程序,并返回%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。
我也愿意采用其他方式来实现这一点。谢谢!
答案 0 :(得分:2)
您需要添加更多&
%put &var = &&&var ;
或使用%superq()
功能。
%put &var = %superq(&var) ;