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

时间:2013-10-15 13:45:39

标签: excel vba excel-vba sas dde

我在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”,但它仍然不起作用。

1 个答案:

答案 0 :(得分: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