edwardzxf 发表于 2013-10-29 16:23 
如可以,能否给个例子,谢谢啊
Here is an example.
%macro freqit(lib=work,dsn=, var=);
proc sql noprint;
select catx(' ', 'table',name,'/out=_tmp_',';') into: varlist separated by ' '
from sashelp.vcolumn
where libname=%UPCASE("&lib") and memname=%UPCASE("&dsn")
and type='char' and upcase(name)=%UPCASE("&VAR") ;
quit;
proc freq data=&lib..&dsn noprint;
&varlist
run;
data _tmp_;
set _tmp_ ;
fmtname="$&var";
start=&var;
label=_N_;
run;
proc format cntlin =_tmp_;
run;
%mend;
%freqit(lib=sashelp,dsn=class,var=sex)
data _null_;
set sashelp.class;
put sex= sex= $sex.;
run;