Hi there, im trying to get a loop to set several macro variables with this program: %let month = 9099;
%macro Loop(several);
%let n=%sysfunc(countw(&several));
%do i=1 %to &n;
%let month_&i._F = %sysfunc(SUM(-%SYSFUNC(MDY(01,01,1993)),%SYSFUNC(INTNX(month,%SYSFUNC(sum(&month,%SYSFUNC(MDY(01,01,1993)))),-&i+1,BEGINNING)))); %put &&month_&i._F;
%let month_&i._L = %sysfunc(SUM(-%SYSFUNC(MDY(01,01,1993)),%SYSFUNC(INTNX(month,%SYSFUNC(sum(&month,%SYSFUNC(MDY(01,01,1993)))),-&i+1,END))));%put &&month_&i._L;
%end;
%mend;
%Loop(1 2);
/*CHECK*/
%put &month;
%put &month_1_F;
%put &month_2_L; I started to read the log, and seemed to work just fine MLOGIC(LOOP): Beginning execution. MLOGIC(LOOP): Parameter SEVERAL has value 1 2 MLOGIC(LOOP): %LET (variable name is N) SYMBOLGEN: Macro variable SEVERAL resolves to 1 2 SYMBOLGEN: Macro variable N resolves to 2 MLOGIC(LOOP): %DO loop beginning; index variable I; start value is 1; stop value is 2; by value is 1. SYMBOLGEN: Macro variable I resolves to 1 MLOGIC(LOOP): %LET (variable name is MONTH_1_F) SYMBOLGEN: Macro variable MONTH resolves to 9099 SYMBOLGEN: Macro variable I resolves to 1 MLOGIC(LOOP): %PUT &&month_&i._F SYMBOLGEN: && resolves to &. SYMBOLGEN: Macro variable I resolves to 1 SYMBOLGEN: Macro variable MONTH_1_F resolves to 9070 ... and so on executing the loop but then when the check comes is like the macro variables that the loop generated doesn t exisits and I can t use them in other programs. /*CHECK*/ 32 %put &month; SYMBOLGEN: Macro variable MONTH resolves to 9099 9099 33 %put &month_1_F; WARNING: Apparent symbolic reference MONTH_1_F not resolved. &month_1_F 34 %put &month_2_L; WARNING: Apparent symbolic reference MONTH_2_L not resolved. &month_2_L does enyone knows why? thanks!! I m using SAS Guide 4.3 version. Lucas
... View more