Hi, I created a macro for you. /* create sample datasets, dsn4 with 0 observation */ data dsn1 dsn2 dsn3; do a=1 to 3; output; end; run; proc sql; create table dsn4 like dsn3; quit; %macro export(lib,path); proc sql noprint; select memname into: dnames separated by ' ' from dictionary.tables where libname=%upcase("&lib"); quit; %do i=1 %to %sysfunc(countw(&dnames)); %let dsn=%scan(&dnames,&i); %put &dsn; %let dsid = %sysfunc(open(&dsn)); %let origN = %sysfunc(attrn(&dsid, nobs)); %let rc = %sysfunc(close(&dsid)); %if &orign> 0 %then %do; PROC EXPORT DATA=&lib..&DSN OUTFILE= "&path\&dsn..xls" DBMS=EXCEL REPLACE; SHEET="&dsn"; NEWFILE=YES; RUN; %end; %end; %mend; %export(work,c:\temp) Linlin
... View more