0

我在 SAS 中有一段代码使用 DDE 输出到 Excel 并且工作正常。我现在正试图让它更具动态性,但我不知道如何将路径行(2.行)写入 Excel 文件。

options noxwait noxsync;

x '"c:\Folder\excelfile_&date_yyyymmdd\Holding\Holding.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”,但它仍然不起作用。

4

1 回答 1

1

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

x """c:\Folder\excelfile_&date_yyyymmdd.\Holding\Holding.xls""";

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

/* double quotes are included if specified a macro variable */
%let quoted_file = "c:\Folder\excelfile_&date_yyyymmdd.\Holding\Holding.xls";

data _null_;
put &quoted_file;
x &quoted_file;

run;

pT

于 2013-10-15T14:28:24.120 回答