Hi everyone I am struggling with creating a macro that loops through a date range that is specified. I would like to give my macro a start date and end date and run a piece of macro to automatically create data sets. the isse is where I have to define the second date where it starts the iteration: %let date=%substr(%sysfunc(intnx(month,%substr(%sysfunc(inputn(&start,yymmn6.),yymmn6.),1,6),1,yymmn6.),yymmn6.),1,6); I get the following warning: WARNING: Argument 4 to function INTNX referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range. NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value. options symbolgen; %let start='20181101'd; %let end='20190201'd; data _null_; datestart = input("&start",yymmn6.); dateend = input("&end",yymmn6.); counter = intck('month',datestart,dateend)+1; call symput('counter',put(counter,best.)); run; %macro loop; %let date=%substr(%sysfunc(inputn(&start,yymmn6.),yymmn6.),1,6); %do i=1 %to &counter; data data_&date.; set data_&date.; run; %let date=%substr(%sysfunc(intnx(month,%substr(%sysfunc(inputn(&start,yymmn6.),yymmn6.),1,6),1,yymmn6.),yymmn6.),1,6); %put &i &counter &date; %end; %mend loop; %loop
... View more