这些宏参数有什么问题?
What's wrong with these macro parameters?
我正在处理的一段代码有以下简化版本:
%macro test(var);
%if &var = 'Sub Prime' %then %do;
%let var2 = 'Sub_Prime';
%put &var2;
%end;
%mend;
%test(Sub%str( )Prime);
基本上,重点是如果 var = 'Sub Prime' 则 var2 应该 = 'Sub_Prime'。虽然 var 似乎不等于 'Sub Prime'。谁能告诉我我做错了什么?
谢谢
宏变量不使用引号。
%macro test(var);
%if &var = %str(Sub Prime) %then %do;
%let var2 = Sub_Prime;
%put &=var2;
%end;
%mend;
%test(Sub%str( )Prime);
你最好在整个事情中使用 %str
,而不是只在 space.
中插入 %str
%test(%str(Sub Prime));
我正在处理的一段代码有以下简化版本:
%macro test(var);
%if &var = 'Sub Prime' %then %do;
%let var2 = 'Sub_Prime';
%put &var2;
%end;
%mend;
%test(Sub%str( )Prime);
基本上,重点是如果 var = 'Sub Prime' 则 var2 应该 = 'Sub_Prime'。虽然 var 似乎不等于 'Sub Prime'。谁能告诉我我做错了什么?
谢谢
宏变量不使用引号。
%macro test(var);
%if &var = %str(Sub Prime) %then %do;
%let var2 = Sub_Prime;
%put &=var2;
%end;
%mend;
%test(Sub%str( )Prime);
你最好在整个事情中使用 %str
,而不是只在 space.
%test(%str(Sub Prime));