Yes.
Just make sure to generate valid SAS code.
Using the CAT... series of functions can help.
%macro mymacro(var1=,var2=,var3=);
....
%mend;
data _null_;
set mydata ;
call execute(cats('%nrstr(%mymacro)','(var1=',var1,',var2=',var2,',var3=',var3,')'));
run;
... View more