在 DDE 输出路径中使用 SAS 宏变量



我在SAS中有一段代码,它使用DDE输出到Excel并且工作正常。我现在试图让它更加动态,但我无法弄清楚如何将路径线(2. 行)写入 Excel 文件。

options noxwait noxsync;
x '"c:Folderexcelfile_&date_yyyymmddHoldingHolding.xls'";
/* Putting SAS in sleep mode to give Excel the necessary time to open the file */
data _null_; x=sleep(5);
run;
FILENAME TEST DDE "EXCEL|SV01-01!r8c2:r20000c29" notab;
    DATA _NULL_;
   SET le_hk3;

当我用宏变量的值替换宏变量时,它工作正常,它似乎也正确解析,但它仍然无法打开文件。日志显示该文件不存在。我尝试使用双引号,双点和三点"..XLS"的各种组合,但它仍然不起作用。

SAS 不会替换单引号内的宏变量。此外,您需要用点指示宏变量的结尾或名称。例如,我无法判断您的宏变量是 &date_yyyymmdd 还是 &date。假设第一个:

x ""c:\文件夹\excelfile_&date_yyyymmdd.\持有\控股.xls"";

我更喜欢将全名构建为单独的宏变量,以便我可以对其进行测试:

/* double quotes are included if specified a macro variable */
%let quoted_file = "c:Folderexcelfile_&date_yyyymmdd.HoldingHolding.xls";
data _null_;
put &quoted_file;
x &quoted_file;
run;

最新更新