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

Hello,

 

i have a macro code in the following structure:

 

%let Waehrung = 1;

%macro Pruefung (sparte=, Marktsegment=, WAE = &Waehrung);

Data temp.&sparte._&Marktsegment.;
         set temp.&sparte._&Marktsegment.;

run;
%mend Pruefung;

 

It works.

 

But if i add the "if then do; end" like:

 

%macro Pruefung (sparte=, Marktsegment=, WAE = &Waehrung);

If WAE = 1 then do:

  Data temp.&sparte._&Marktsegment._1;
           set temp.&sparte._&Marktsegment.;

  run;

end;

 

If WAE = 2 then do:

  Data temp.&sparte._&Marktsegment._2;
           set temp.&sparte._&Marktsegment.;

  run;

end;


%mend Pruefung;

 

If doesn't work any more.

ERROR 180-322: Statement is not valid or it is used out of proper order.

 

Has someone an idea, why?

 

1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26
%If &WAE = 1 %then %do:
--
Paige Miller

View solution in original post

2 REPLIES 2
PaigeMiller
Diamond | Level 26
%If &WAE = 1 %then %do:
--
Paige Miller
andreas_lds
Jade | Level 19

You need to use macro-statements inside a macro: %if instead of if ...

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
  • 959 views
  • 0 likes
  • 3 in conversation