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?
%If &WAE = 1 %then %do:
You need to use macro-statements inside a macro: %if instead of if ...
Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.
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.