proc出口的宏。

时间:2015-01-21 15:45:50

标签: macros sas

您好我在proc内容之后创建一个宏proc导出,这里的代码是。

%macro cont(dataset_sheet, library );


proc contents data= &library .&dataset_sheet    out=&dataset_sheet 
;   run;

proc export data= &library . &dataset_sheet  outfile="C:\mapp.xls" 
dbms=excelcs replace; sheet="&dataset_sheet";run;
%mend;

%cont(dataset, my_lib);

并且它适用于proc内容但是当我同时运行时它表示在proc导出语句中没有那种类型的库...这里有什么问题?

2 个答案:

答案 0 :(得分:1)

您的问题可能是因为.是宏变量终止符。它通常是可选的,但如果它存在则使用它;因此,如果下一个字符实际上应该是.,那么它应该加倍。

因此,&library.&dataset. &library = WORK&dataset = TEST表示您要WORKTEST,而不是{{1} }}。您需要第二个句点:在这种情况下为WORK.TEST

答案 1 :(得分:0)

删除库名后的额外空格并包含另一个“。”

%macro cont(dataset_sheet, library );


proc contents data= &library..&dataset_sheet    out=&dataset_sheet 
;   run;

proc export data= &library..&dataset_sheet  outfile="C:\mapp.xls" 
dbms=excelcs replace; sheet="&dataset_sheet";run;
%mend;

%cont(dataset, my_lib);