Date: Mon, 2 Sep 1996 02:24:14 GMT
Reply-To: Clark Roberts <us026486@INTERRAMP.COM>
Sender: "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU>
From: Clark Roberts <us026486@INTERRAMP.COM>
Organization: Decision Analytics
Subject: Re: Macro question
Stephen_Hiemstra@msn.com (Stephen Hiemstra) wrote:
>I would like to write a macro to call and increment another macro as follows:
>%MACRO CALLER( int_YY_FROM, int_YY_TO );
>%MACRO CALLEE( YY );
> SET ww.nabk&YY;
> **Do more stuff**;
>%DO k = &int_YY_FROM %TO &int_YY_TO; CALLEE( %k ); %END;
>%CALLER( 85, 95 );
>This example failed for two reasons. First, my variables passed to
>the %DO LOOP did not appears as integers to the loop, in spite of my
>obvious passing of integers in the calling routine. Second, the
>call to CALLEE failed because %k was not passed literally as %k and
>not as a string.
>Can someone strengthen out the syntax here for me? I have been
>getting lost in the MACRO guide on this one.
Without further information I'd say:
1. It looks like you have over complicated the problem. Why are you using the
imbedded CALLEE macro, these statements could be executed directly in the %DO
2. The names of the parameters for the CALLER macro are longer than 8
characters. This may be why you're getting the non integer error message? Just
use FROM and TO.
3. I assume you're trying to pass the value of the %DO loop index variable to
the CALLEE macro, it should be &k, not %k.
Decision Analytics, A SAS(r) Quality Partner
e-Mail email@example.com or firstname.lastname@example.org
Voice/FAX/Message: (619) 565-9998
Pager: (619) 975-0758