我写了一个sas宏,它需要两个输入变量。 Var1
是日期变量。 var2
以and pern in(
开头,以)
结尾,括号中包含一系列以逗号分隔的数字。
%let var1 = '01DEC2011'd;
%let var2 = and pern in (10107,11308,11703,11850);
现在我首先定义输入变量,然后定义宏并运行它。它工作正常
%let var1 = '01DEC2011'd;
%let var2 = and pern in (10107,11308,11703,11850);
%macro program;
...
%mend;
%program;
但是,我想改变我分配输入变量的方式,让我的宏看起来如下:
%macro program(var1, var2);
...
%mend;
%program( '01DEC2011'd, and pern in (10107,11308,11703,11850));
因为var1和var2都包含特殊字符'和(),所以无法正确地执行宏。任何人都可以教我如何打电话给我的宏。
答案 0 :(得分:1)
我运行以下内容似乎工作正常。你得到什么错误?
%let var1 = '01DEC2011'd;
%let var2 = and pern in (10107,11308,11703,11850);
%put &var1 ' ' &var2 ;
%macro test(var1,var2);
%put &var1 ' ' &var2;
%mend test;
%test('01DEC2011'd,and pern in (10107,11308,11703,11850));