BookmarkSubscribeRSS Feed
rkumar23
Calcite | Level 5

I am trying to achieve something as below....

I have a Main macro say with MAIN1  and within MAIN1 i have another macro with MAIN2 and Both MAIN1 & MAIN2 need to have certain values to be passed when they run so I have below in the coding.

%Macro main1(X1,X2,X3,X4);

Data xx;

%Put "&X1";

%MAIN2(&X2,&X3,&X4);

%Mend main1;

Now I am running above macro as below:

%Main1(x1=1,x2=6,x3=8,x4=10);          

with above run it shows me error ERROR: MORE POSITIONAL PARAMETERS FOUND THAN DEFINED.  

Any idea how we pass the variables to MAIN2 ?

2 REPLIES 2
rkumar23
Calcite | Level 5

got it resolve..thanks...

Ksharp
Super User

You mixed up two ways of defining macro variable(parameter  macro variable  and  position macro variable).


%Macro main1(X1=,X2=,X3=,X4=);

Message was edited by: xia keshan

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1155 views
  • 0 likes
  • 2 in conversation