sophiesdaisy 发表于 2012-2-1 11:50 
sorry, 还是不行呢,而且我运行待宏的程序总是有类似问题,我总是怀疑,带宏的程序建立的数据**是隐含的 ...
Start a new SAS, and run the following code. This code could work, but I still don't know why the privious code goes wrong. I would do more research, and inform u if I find the reason.
libname fund "F:\SAS\20120120";
%macro getdata_easy1(n);
%let var1 = %eval( 9+&n.);
%let var2 = %eval(42+&n.);
%let var3 = %eval(43+&n.);
%let var4 = %eval(78+&n.);
%let var5 = %eval(79+&n.);
%let var6 = %eval(80+&n.);
data fund.d&n.;
set fund.refine20120120;
keep %do ii = 1 %to 6;
%sysfunc(compress(_COL&&var&ii..))
%end;;
run;
%mend;
%macro getdata_easy2(NN);
%do n = 1 %to &nn.;
%getdata_easy1(n = &n.);
%end;
%mend;
%getdata_easy2(NN = 20);