小鳄鱼a 发表于 2014-10-29 13:47
%macro checkvar(dsn=, var=);
options nonotes;
***Note: 0---not found :: 1---found;
- data test;
- input a $;
- cards;
- 1
- a
- ;
- run;
- %macro checkvar(dsn =, var =);
- options nonotes;
- ***Note: 0---not found :: 1---found;
- proc contents
- noprint
- data = &dsn
- out = _name_(keep = name);
- run;
- %global rc;
- %let rc = 0;
- data _null_;
- set _name_;
- call symputx('rc', '1');
- where upcase(name) = "%upcase(&var)";
- run;
- %put rc = &rc;
- %mend;
- %macro test(var);
- %checkvar(dsn = a, var = &var.)
- %put &rc.;
- %mend;
- %test(a)
- %test(b)
还有,楼主既然使用了symputx,连%global都可以不写,直接
- call symput('rc', '1', 'G')
其中G代表了Global,也可以'L'意义的话,请猜一下,猜对了我就告诉你



雷达卡





京公网安备 11010802022788号







