2012-04-02 1 views
4

У меня есть следующий код в конце моего кода для экспорта данных SAS в файл Excel. RepDate устанавливается следующим образом в начале кода:SAS Macro Расширения и расширения файлов

%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