【发布时间】:2017-07-10 13:49:34
【问题描述】:
我的循环只进行了 1 次迭代。我应该创建三个宏变量:var1 = Month1、var2 = Month2 和 var3 = Month3,如果 qtr = qtr1。当我使用 Put 语句检查它时,我的循环仅创建 var1 = Month1 和 I = 1。它只进行一次迭代,所以我不确定我做错了什么。
%Let qtr = qtr1;
%Macro Firstqtr(qtr);
%Let I = 1;
%If &qtr = qtr1 %then %do %until (&I > 3);
%Let var&I = Month&I;
%let I = %eval(&I + 1);
%end;
%Mend Firstqtr;
%Firstqtr(qtr);
【问题讨论】:
-
您发布的程序将永远不会运行 %DO 循环,因为 %IF 语句中的条件将为 FALSE。