小白欲用宏实现日期的循环输出,代码如下:
%macro dateira(date_begin,date_end);
%let a= "&date_begin."d;
%let b= "&date_end."d;
%do date = &a %to &b;
put &date;
%end;
%mend;
%dateira(01NOV2013,30DEC2013);
在执行的时候会发生:
ERROR: 在需要数值操作数的 %EVAL 函数或 %IF 条件中发现字符操作数。条件是: &a
ERROR: %FROM 值(%DO DATE 循环中)无效。
但直接用程序:
data dateira;
format date yymmdd10.;
do date="01nov2013"d to "30dec2013"d;
output;
end;
run;
却不会出现上述的字符类型不匹配的问题。
请教各位大神:
1.发生这种错误的原因是什么?
2.宏代码应如何改正?