2012-04-02 138 views
4

我在代码的最后有以下代码将SAS数据导出到Excel文件。 的RepDate被设置为在代码的开头如下:SAS宏变量和文件扩展名

%let RepDate = &SYSDATE9; 

日期完美的作品,但是当我使用下面的代码以导出数据:

PROC EXPORT DATA=MYData   
OUTFILE="C:\Documents and settings\Documents\myFile &RepDate.XLS"  DBMS=EXCEL2000 REPLACE; 
RUN; 

输入日期放入文件名中,但XLS被添加到文件名中。对于文件扩展名的点缺失和文件名变为:

myFile02APR2012XLS 

这不是我所期待的,我预计如下文件名: myFile02Apr2012 与.XLS作为文件扩展名。有没有办法来解决这个问题?

回答

13

你需要

OUTFILE="C:\Documents and settings\Documents\myFile &RepDate..XLS" 

您需要使用额外的。 &RepDate之后的宏变量引用。首先 。终止宏变量引用,第二个。然后是字符串的一部分。

要理解为什么。是必要的,你可能想建立一个文件名

02Apr2012MyFile.XLS 

在这种情况下,你会想尝试写:

&RepDateMyFile.XLS 

但SAS解释不知道从哪里宏变量名结束,字符串文本仍在继续,所以一个点是为了结束宏变量引用需要:

&RepDate.MyFile.XLS 

你的情况,你想,然后放了。立即在解析的宏变量之后,因此需要两个点。

+0

感谢您的帮助。你确切地回答了这个问题。我曾认为这将是某种类型或其他类型的转义字符。 – Ckeane 2012-04-02 12:35:20