%let test1=30;
%macro test(ds=abs,a=10,b=20);
data &ds; a=&a; b=&b;
%put _local_; run;
%mend;
options symbolgen mprint;
%test(ds=abs,a=10,b=20)
i did this to display local variable to the log bot test1=30 is not displayed plz retify my mistake.
Hi Teland,
{Code}
%macro ;
-----------
%put _local_;
%mend;
If you understand the _local_. Its displays/works only the macro variables which are present inside the macro.
{Code}
%let a=10;
%macro ;
-----------
%put _Global_; or %put _user_;
%mend;
if you want to diaplay the macro variables outside the macro which are present (Global macros variables) you need to use _global_;
Hope this helps you if you still dont understand let me know.
Duplicate post, please use your other post on the same topic:
Unfortunately, the change needs to occur in your expectations not in the code itself. This statement appears outside of the macro definition:
%let test1=30;
Therefore, &TEST1 is a global macro variable, and won't appear in the list of %LOCAL macro variables.
%let a=10 b=12 c=15;
%macro test(varlist=a b c test1);
string=(varlist= a b c test1);
%do varlist=&a %to test1;
%put _local_ ;
%end;
%mend test;
options symbolgen mprint;
%test
will this work or retify it!
i want to display varlist= a b c test1 to the log with their values
Still duplicate, please don't have two posts for the same question.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.