当我运行以下代码时,日志中显示三个错误:错误:此 %MEND 语句没有匹配的 %MACRO 语句。错误:宏 NO 仍在执行,无法重新定义。错误:将编译一个虚拟宏。我想知道是不是黑洞问题。但我找不到任何语法错误。谁能告诉我有什么问题?谢谢你!
%Macro table(x);
data m_&x; set A (where=(seqno=0));
LENGTH DD_&x 8;
run;
%mend table;
data _null_;
Do u=1 to 17;
call execute ('%nrstr(%table('||u||'))');
end;
run;
%macro sumup_DD (x, Startdate, Enddate,i);
data B; set A (where=(seqno=&i));
DD_&x=sum(of &Startdate-&Enddate);
run;
proc append base=m_&x data=B;
run;
%mend sumup_DD;
%macro no;
%do n=1 %to 17;
data _null_; set A;
call execute('%nrstr(%sumup_DD ('||&n||','||rr&n||','||rr%eval(&n+1)||','||seqno||'))');
run;
%end;
%mend no;
%no;