Desktop productivity for business analysts and programmers

Comments inside macro %IF statements?

Accepted Solution Solved
Reply
Contributor
Posts: 64
Accepted Solution

Comments inside macro %IF statements?

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;

 


Accepted Solutions
Solution
‎03-14-2016 07:51 PM
Grand Advisor
Posts: 17,360

Re: Comments inside macro %IF statements?

Macro commenting

 

%*this is my comment;

View solution in original post


All Replies
Solution
‎03-14-2016 07:51 PM
Grand Advisor
Posts: 17,360

Re: Comments inside macro %IF statements?

Macro commenting

 

%*this is my comment;
Esteemed Advisor
Esteemed Advisor
Posts: 7,217

Re: Comments inside macro %IF statements?

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.;
Contributor
Posts: 64

Re: Comments inside macro %IF statements?

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.

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 283 views
  • 1 like
  • 3 in conversation