问题简述:
就是希望在一个宏循环里,通过循环步,引用全局宏变量 macrovar1 marcrovar2 macrovar3...
如下例:
&stage ¯ovar1 &marcrovar2 ¯ovar3 都是事先定义好的全局宏变量;
用循环步 i = 1 to 10 , j = 1 to 10 总共执行了10*10=100次 %calculate,宏;
&stage是数据集名的前半部分,&i &j 是数据集名的后半部分,每个循环步引用了一个数据集&stage&i&j;
但是用同样的方法引用全局宏变量时,程序无法运行;
也就是说:
%macro circle(from1,to1,from2 to2);
%local i j k;
%do i=&from1 %to &to1;
%do j=&form2 %to &to2;
%calculate(&stage1,&i,&j,¯ovar1);
%end;
%end;
%mend circle;
%circle2(1,10,1,10);
可以运行;
%macro circle(from1,to1,from2 to2,from3,to3);
%local i j k;
%do i=&from1 %to &to1;
%do j=&form2 %to &to2;
%do k=&form3 %to &to3;
%calculate(&stage,&i,&j,¯ovar&k);
%end;
%end;
%end;
%mend circle;
%circle2(1,10,1,10,1,3);
无法运行;
求教解决的办法,方法随意;谢谢!