BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Dennis_Lam
Calcite | Level 5

Hi, I have problem on passing parm to a macro wish someone can give me a hand. Following is the script that I have. I am trying to pass parm to the macro using a do loop but it was not successful. Can anyone give me some advice. thanks.

DATA rev_data;
FORMAT rep_month $7. ;
INPUT @1 rep_month $7.;
CARDS;
2012-01
2012-02
2012-03
;


data rev_data; set rev_data;
by rep_month;
   if first.rep_month then do;
     cnt = left(put(_n_,6.));
    call symput('mth'||cnt, rep_month);
    call symput('mthcount', cnt);
    end;
run;
%put _user_;
 
%macro a(m_mth, m_mthcount);


  %put month = &m_mth. count = &m_mthcount.;
%mend;
%a(&mth1, &mthcount);
data _d_;
  do i = 1 to &mthcount;
   runmth = '&mth'||i;
   %a(&mth||i,i);
  end;
   run;

1 ACCEPTED SOLUTION

Accepted Solutions
Haikuo
Onyx | Level 15

For the last part of your code, I have modified it to macro, hopefully it is what you want:

%macro test;

data _d_;

  %do i = 1 %to &mthcount;

   runmth = "&&mth&i";

   output;

   %a(&&mth&i,&i);

  %end;

   run;

   %mend;

   %test

   proc print;run;

Kindly Regards,

Haikuo

View solution in original post

2 REPLIES 2
Haikuo
Onyx | Level 15

For the last part of your code, I have modified it to macro, hopefully it is what you want:

%macro test;

data _d_;

  %do i = 1 %to &mthcount;

   runmth = "&&mth&i";

   output;

   %a(&&mth&i,&i);

  %end;

   run;

   %mend;

   %test

   proc print;run;

Kindly Regards,

Haikuo

Dennis_Lam
Calcite | Level 5

Hi HaiKuo, thank you for your help.. Your solution work.. thanks a lot...

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1111 views
  • 3 likes
  • 2 in conversation