-1
當我運行以下代碼時,日誌中顯示三個錯誤: 錯誤:此%MEND語句沒有匹配的%MACRO語句。 錯誤:宏NO仍在執行,無法重新定義。 錯誤:將編譯一個虛擬宏。 我想知道這是否是黑洞問題。但我找不到任何語法錯誤。誰能告訴我有什麼問題?謝謝!sas中沒有匹配的%宏錯誤
%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;
這聽起來像是你在早期的執行中做了錯誤的事,並且它影響了你連續運行的代碼。你能否確認這些確實是你在新的SAS會議中首次運行時遇到的錯誤? – mvherweg
代碼中的第5行應該是'%修正表;'不是'%修正表;'。 – DomPazz
@Shorack在首次運行的新SAS會話中,「%no」無法執行。它被識別爲宏命令的一部分。 – Jennyapple