楼主: nightmeal
1379 3

[问答] 关于宏循环中嵌套call execute,循环不执行的问题 [推广有奖]

  • 0关注
  • 0粉丝

副教授

74%

还不是VIP/贵宾

-

威望
0
论坛币
8536 个
通用积分
37.2288
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
13519 点
帖子
104
精华
0
在线时间
1875 小时
注册时间
2012-8-28
最后登录
2024-4-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

我有个宏%basket(参数1,参数2,参数3)是包含3层宏的嵌套宏,想要自动执行这个大宏,不过由于这个宏中第二个参数数量不确定,导致我需要使用循环才能实现自动执行。尝试了如下写法,&lastloopnumb 和 &&macro&i.都能够正常解析,不过这个循环为什么只执行一次就停了? 各位高人不吝赐教


%let macro1=羊肉串;
%let macro2=铜锅;

%macro dahuilang;
        %do i=1 %to &lastloopnumb.;
                data _null_;
                        call execute('%nrstr(%basket(para1, &&macro&i., para3);)');
                run;
        %end;
%mend;


%dahuilang;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数量不确定 自动执行 不确定 羊肉串

沙发
nightmeal 发表于 2019-2-25 15:51:50 |只看作者 |坛友微信交流群
我突然醒悟,这个宏其实这样也能执行,不需要使用call execute,但是同样只能执行一次,求解答
%macro dahuilang;
    %do i=1 %to &lastloopnumb.;
            %basket(para1, &&macro&i., para3);
    %end;
%mend;

使用道具

藤椅
xiaopingN 发表于 2019-2-26 03:40:11 |只看作者 |坛友微信交流群
宏变量basket的参数不能含有&&这些符号吧。

使用道具

板凳
nightmeal 发表于 2019-2-26 10:32:49 |只看作者 |坛友微信交流群
自问自答一波,宏循环没有问题,问题出在了循环体中因为涉及了多层宏嵌套,有的子宏循环也使用了 i 做为指标变量,导致顶层 i 赋值混乱

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 13:09