今天写了一段代码
执行起来报错
没有解析符号引用A
&a=.
初步判断是call symput语句没起作用,不知道具体问题发生在什么地方,还请高手不吝赐教,谢谢!
%macro directory(dir=); /*定义宏directory,并定义宏变量路径(dir)*/
%let rs=%sysfunc(filename(filref,&dir)); /*读取dir下的文件数*/
%let did=%sysfunc(dopen(&filref));
%let nobs1=%sysfunc(dnum(&did));
libname tmp "E:\sas\tmp";
%do i=1 %to &nobs1.; /* 利用一个do循环,将文件夹下所有文件定义视图文件*/
%let name=%qscan(%qsysfunc(dread(&did,&i)),1,.);
%let ext=%qscan(%qsysfunc(dread(&did,&i)),-1,.);
%let Variety=%substr(&name,10);
%let date=%substr(&name,1,9);
%end;
data _null_;
set sum.&date;
call symput('a',kind);/*kind为sum.&date中的变量名*/
%put &a.=;
run;
%mend;
%directory(dir=E:\sas\已规范格式\2010-09-27\);