SAS:在宏变量解析中保留前导 space
SAS: Preserve leading space in macro variable resolution
我正在使用 SAS DDE 功能调用 Excel 命令。我正在使用的命令采用 worksheet 名称。不幸的是,我正在使用的作品 sheet 名称包含前面的 space。空格通常可以用%str( )
来处理。在这种情况下,引用变得棘手:
%let sheet = %str( )Sheet X;
filename cmds DDE 'excel|system';
data _null_;
file cmds;
put '[WORKBOOK.SELECT("&sheet.")]';
run;
这会导致 DDE 会话出错。 sheet 名称未按预期解析。我知道这一点是因为当 sheet 明确给出时该命令有效:
put '[WORKBOOK.SELECT(" Sheet X")]';
如何编写 put
语句以使 %let sheet = %str( )Sheet X;
正确解析?
问题不在于 space,而在于单引号。
这对我来说很好用:
put "[WORKBOOK.SELECT(""&sheet."")]";
我正在使用 SAS DDE 功能调用 Excel 命令。我正在使用的命令采用 worksheet 名称。不幸的是,我正在使用的作品 sheet 名称包含前面的 space。空格通常可以用%str( )
来处理。在这种情况下,引用变得棘手:
%let sheet = %str( )Sheet X;
filename cmds DDE 'excel|system';
data _null_;
file cmds;
put '[WORKBOOK.SELECT("&sheet.")]';
run;
这会导致 DDE 会话出错。 sheet 名称未按预期解析。我知道这一点是因为当 sheet 明确给出时该命令有效:
put '[WORKBOOK.SELECT(" Sheet X")]';
如何编写 put
语句以使 %let sheet = %str( )Sheet X;
正确解析?
问题不在于 space,而在于单引号。
这对我来说很好用:
put "[WORKBOOK.SELECT(""&sheet."")]";