2012-04-02 150 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