SAS:保留宏变量分辨率的领先空间

时间:2018-03-14 15:12:33

标签: sas quoting

我正在使用SAS DDE功能来调用Excel命令。我正在使用的命令采用工作表名称。不幸的是,我正在使用的工作表名称包含前面的空格。通常可以使用%str( )处理空格。在这种情况下,引用变得棘手:

%let sheet = %str( )Sheet X;
filename cmds DDE 'excel|system';

data _null_;
  file cmds;
  put '[WORKBOOK.SELECT("&sheet.")]';
run;

这会导致DDE会话出错。工作表名称未按预期解析。我知道这一点,因为在明确给出工作表时该命令有效:

put '[WORKBOOK.SELECT(" Sheet X")]';

如何编写put语句以使%let sheet = %str( )Sheet X;正确解析?

1 个答案:

答案 0 :(得分:1)

问题不在于空间,而在于单引号。

这对我来说很好用:

  put "[WORKBOOK.SELECT(""&sheet."")]";