I am writing a macro with a rather complicated IF statement - however I noticed when I put comments inside I get this annoying error:
ERROR: There is no matching %IF statement for the %ELSE.
I really dont have the option to *not* write comments, is there some other way I can do this?
%global testvar;
%global check;
%let testvar=5;
%MACRO printme(check);
%IF &testvar=1 %THEN
%DO;
%let check = 1;
%put testvar is &testvar and check was ✓
%END;
* comment ;
%ELSE %IF &testvar=2 %THEN
%DO;
%let check = 1;
%put testvar is &testvar and check was ✓
%END;
* comment ;
%ELSE %IF &testvar=3 %THEN
%DO;
%let check = 1;
%put testvar is &testvar and check was ✓
%END;
* comment ;
%ELSE %IF &testvar=4 %THEN
%DO;
%let check = 1;
%put testvar is &testvar and check was ✓
%END;
* comment ;
%ELSE %IF &testvar=5 %THEN
%DO;
%let check = 1;
%put testvar is &testvar and check was ✓
%END;
* comment ;
%ELSE %IF &testvar=6 %THEN
%DO;
%let check = 1;
%put testvar is &testvar and check was ✓
%END;
* comment ;
%ELSE %IF &testvar=7 %THEN
%DO;
%let check = 1;
%put testvar is &testvar and check was ✓
%END;
* comment ;
%ELSE %IF &testvar=8 %THEN
%DO;
%let check = 1;
%put testvar is &testvar and check was ✓
%END;
* comment ;
%ELSE
%DO;
%let check = 1;
%put testvar is &testvar and check was ✓
%END;
%MEND printme;
%printme;
Macro commenting
%*this is my comment;
Hi,
I have to ask, why are you doing that in macro? It seems like a large amount of difficult to read, and hard to maintain code, for no apparent benefit. Use SAS Base - which is designed to process and manipulate data for data processing and manipulation. Macro is for generating repetitive code, it is not for data processing and manipulation:
%let testvar=5;
data _null_;
if &testvar. in (1,2,3,4,5,6,7) then call symputx('check',1);
run;
%put testvar. is &testvar. and check was &check.;
Thanks, but this was just a simplified made-up example to illustrate my problem.
In reality, what I'm doing involves many macros passing variables back and forth and doing a variety of data tasks, so its quite complicated to post here.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.