楼主: firefox29
5908 6

循环引用宏变量的问题 [推广有奖]

  • 11关注
  • 1粉丝

博士生

28%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.2251
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
3694 点
帖子
131
精华
0
在线时间
305 小时
注册时间
2012-1-23
最后登录
2023-6-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
问题简述:
就是希望在一个宏循环里,通过循环步,引用全局宏变量 macrovar1 marcrovar2 macrovar3...

如下例:
&stage &macrovar1 &marcrovar2 &macrovar3 都是事先定义好的全局宏变量;
用循环步 i = 1 to 10 , j = 1 to 10 总共执行了10*10=100次 %calculate,宏;
&stage是数据集名的前半部分,&i &j 是数据集名的后半部分,每个循环步引用了一个数据集&stage&i&j;
但是用同样的方法引用全局宏变量时,程序无法运行;

也就是说:
%macro circle(from1,to1,from2 to2);
%local i j k;                                                                       
%do i=&from1 %to &to1;
        %do j=&form2 %to &to2;
                %calculate(&stage1,&i,&j,&macrovar1);
        %end;
%end;
%mend circle;
%circle2(1,10,1,10);

可以运行;

%macro circle(from1,to1,from2 to2,from3,to3);
%local i j k;                                                                       
%do i=&from1 %to &to1;
        %do j=&form2 %to &to2;
                %do k=&form3 %to &to3;
                %calculate(&stage,&i,&j,&macrovar&k);
                %end;
        %end;
%end;
%mend circle;
%circle2(1,10,1,10,1,3);

无法运行;

求教解决的办法,方法随意;谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:calculate circle Macro stage 全局宏变量 local 程序

沙发
dengrong1989 发表于 2014-1-23 15:29:20 |只看作者 |坛友微信交流群
%calculate(&stage,&i,&,&macrovar.&k);
&macrovar后面加个点试试看

使用道具

藤椅
zufestar 发表于 2014-1-23 16:02:30 |只看作者 |坛友微信交流群
%calculate(&stage,&i,&j,&&macrovar&k);

使用道具

板凳
牵你↗左手 发表于 2014-1-23 17:01:15 |只看作者 |坛友微信交流群
%calculate(&stage,&i,&j,&macrovar&k);写成%calculate(&stage,&i,&j,&&macrovar&k);
&&macrovar&k第一步解析:&&解析成&,&k解析成1,2,。。。。10,第二步解析&macrovar1 &macrovar2 。。。&macrovar10

使用道具

报纸
firefox29 发表于 2014-1-23 17:15:54 |只看作者 |坛友微信交流群
dengrong1989 发表于 2014-1-23 15:29
%calculate(&stage,&i,&,&macrovar.&k);
&macrovar后面加个点试试看
8行..

使用道具

地板
firefox29 发表于 2014-1-23 17:28:30 |只看作者 |坛友微信交流群
牵你↗左手 发表于 2014-1-23 17:01
%calculate(&stage,&i,&j,&macrovar&k);写成%calculate(&stage,&i,&j,&&macrovar&k);
&&macrovar&k第一步解 ...
正解!!以前瞄到过这个现在才理解是这里用上的!!感激不尽!!

使用道具

7
firefox29 发表于 2014-1-23 17:37:16 |只看作者 |坛友微信交流群
牵你↗左手 发表于 2014-1-23 17:01
%calculate(&stage,&i,&j,&macrovar&k);写成%calculate(&stage,&i,&j,&&macrovar&k);
&&macrovar&k第一步解 ...
如果多加一个字段是不是用&&&fmvar&&smvar&k
这样?
以此类推?

使用道具

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

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

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

GMT+8, 2024-9-27 08:21