%macro abc(rm,tm);
%let rm=%bquote(1.2,1,2,3,4,5,4);
%let tm=%substr(&tm,2,%length(&tm)-2);
%put &rm; *这两个变量put出来显示是一样的;
%put &tm;
%do i=1 %to 5;
%let rv&i=%scan(&rm,&i,%str(,));
%let tv&i=%scan(%bquote(&tm),&i,%str(,)); *报错;
%put &&rv&i &&tv&i;
%end;
%mend;
%abc(%bquote(3,2.8,2.6,2.4,2.2,2.0,1.8),%bquote(3,2.7,2.4,2.1,1.8,1.5,1.2));
你宏中的参数rm是没有用的,你在宏中直接重新定义其值了