【发布时间】:2018-06-13 00:30:03
【问题描述】:
您好,我试图创建一个只包含宏变量创建的宏,但它失败了。这是一个例子:
%macro createvariable;
%let a = 5;
%let b = 6;
%mend createvariable;
%createvariable;
data test;
c = &a + &b;
run;
但它会作为:
%macro createvariable;
%let a = 5;
%let b = 6;
data test;
c = &a + &b;
run;
%mend createvariable;
%createvariable;
所以我想知道 SAS 是否无法创建一个只在其中创建宏变量的宏?或者有办法解决这个问题。谢谢。
【问题讨论】:
-
我认为问题在于在宏中创建的宏变量是该宏的本地变量。如果要在宏内创建宏变量并允许在该宏外访问它们,则必须将它们声明为全局宏变量。
-
格栅!感谢您的解决方案。我真的学到了。
-
有人知道为什么这个问题被否决了吗?