I have extensive experiance with VBA so I know that this can be done but I do not know the proper syntax for it as I have limited experiance with SAS coding. I have code that extracts data from pre set text files and aranges them into 74 Excel files. Currently the code is run one at a time, changing the x value at each iteration. I would like the code to run as a DO UNTIL loop. Any idea how to do this? Here is the code: %MACRO TEST;
%global inputfilename outputfilename x j;
%put &x;
%put &inputfilename;
%put &outputfilename;
%let x = 1;
%If &x = 1 %then %do;
%let inputfilename = C:\readtest4\P3674100.txt;
%let outputfilename = C:\Temp4\001 [NAME REDACTED] 4.xlsx;
%end;
%If &x = 2 %then %do;
%let inputfilename = C:\readtest4\P4135008.txt;
%let outputfilename = C:\Temp4\002 [NAME REDACTED] 4.xlsx;
%end;
*(CODE CONTUNUES IN LIKE MANNER)*
%If &x = 73 %then %do;
%let inputfilename = C:\readtest4\P4138601.txt;
%let outputfilename = C:\Temp4\050 [NAME REDACTED] 4.xlsx;
%end;
%If &x = 74 %then %do;
%let inputfilename = C:\readtest4\P4135300.txt;
%let outputfilename = C:\Temp4\006 [NAME REDACTED] 4.xlsx;
%end;
%MEND;
DATA ONE;
%TEST
INFILE "&inputfilename" LRECL=135;
INPUT @1 PROVNO $7.
@8 LNAME $12.
@20 FNAME $7.
@27 MINIT $1.
@28 ACCTNO $20.
@48 ICN $11.
@59 J3DATE $6.
@65 CLCHARGE 10.2
@75 DOCCHARGE 10.2
@85 TPLPAID 10.2
@95 TPLDOC 10.2
@105 IDNO $1.
@106 CTYPE $2.
@108 SERDAT $6.
@108 SYR 2.
@110 SYMON 2.
@112 SYDAY 2.
@114 TRANSTYPE $1.
@115 PAYAMT 10.2
@125 BirDate $8.
@125 DoBYR 4.
@129 DoBMO 2.
@131 DoBDA 2.
@133 PATAGE 3. ;
YEARCUTOFF = 1904;
RUN;
DATA TWO;
SET ONE;
IF PATAGE > 109 THEN DO;
AgeDays = Serdat - BirDate;
PatAge = Int(AgeDays/365.25);
END;
DROP SYr SyMon SyDay DObYR DoBMo DoBDa AGEDAYS YEARCUTOFF;
RUN;
DATA EDIT; /** THIS DATA SET IS ONLY FOR REVIEW PURPOSES- RECORDS ARE NOT ELIMINATED ***/
SET ONE;
IF SYR GT '16';
RUN;
PROC PRINT;
SUM CLCHARGE DOCCHARGE PAYAMT;
TITLE 'EDIT REPORT -- SERVICE DATE YEAR GREATER THAN AUDIT YEAR';
RUN;
PROC EXPORT
%TEST
DATA=WORK.TWO
OUTFILE="&outputfilename"
DBMS=XLSX REPLACE;
RUN;
... View more