LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous (more recent) messageNext (less recent) messagePrevious (more recent) in topicNext (less recent) in topicPrevious (more recent) by same authorNext (less recent) by same authorPrevious page (November 2008, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Tue, 25 Nov 2008 13:27:41 -0600
Reply-To:     Herbert Morley A <Morley.Herbert@HCAHEALTHCARE.COM>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         Herbert Morley A <Morley.Herbert@HCAHEALTHCARE.COM>
Subject:      Macro won't resolve variables
Content-Type: text/plain; charset="us-ascii"

I need help- SAS Macros drive me nuts! I'm impressed with the gurus on this list who write huge complex macros that work. Despite all my days of programming (from Fortran days on), SAS macros still bewilder me.

I have a group of Excel spreadsheets each containing data for a year with one tab per month. I am trying to read them in with a Macro so that I don't have to write 50-70 filename statements. Even though its archaic, DDE works for the purpose and I use it regularly. This macro works fine when I enter the macro values in by hand. But it only seems to recognize outfil as a macro variable (see Log below). What have I done wrong.

Thanks in advance Morley Herbert

%MACRO VASC(yr1, moyr, outfil); FILENAME p2 DDE 'Excel|H:\PICC Team\[Vasc&yr1..xls]&moyr.!R2C1:R1000C12' NOTAB ;

DATA &outfil ; LENGTH patient $30 ScanDx $50 ; INFILE p2 MISSOVER DLM ='09'x TRUNCOVER DSD LRECL=2154 ; INFORMAT ScanDate mmddyy10. ; INPUT Seq ScanDate Tech : $ Patient : $ PatID SexAge : $ Rm : $ Tape : $ arm_vein : $ PHYS : $ Indic : $ ScanDx : $ ; RUN;

%MEND;

%VASC(2005, Jan 05, Jan05); QUIT; ---------------------------------------------------------------- LOG FILE

SYMBOLGEN: Macro variable OUTFIL resolves to Jan05 WARNING: END-OF-RECORD option TRUNCOVER in effect for infile P2.

ERROR: Physical file does not exist, Excel|H:\PICC Team\[Vasc&yr1..xls]&moyr.!R2C1:R1000C12. NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set WORK.JAN05 may be incomplete. When this step was stopped there were 0 observations and 12 variables. WARNING: Data set WORK.JAN05 was not replaced because this step was stopped. NOTE: DATA statement used (Total process time): real time 5.53 seconds cpu time 0.01 seconds


Back to: Top of message | Previous page | Main SAS-L page