Este programa SAS une todos los excel que queramos en un único libro. Cuando estamos haciendo análisis de variables y exportamos los resultados con ods o con otro método a excel, resulta un poco pesado ir abriendo cada libro para ver los resultados, a mi me resulta más facil unirmelas todas y tener toda la información contenida en un único Excel.
Espero que os resulte útil!
ods noresults; ods listing close; ods html body="c:\temp\retail.xls"; proc print data=sashelp.retail; run; ods html close; ods html body="c:\temp\shoes.xls"; proc print data=sashelp.shoes ; run; ods html close; %macro UNE_EXCEL(in=,out=); options noxwait; x erase "&&out"; options xwait; data _null_; file "c:\temp\class.vbs"; put 'Set XL = CreateObject("Excel.Application")' / 'XL.Visible=True'; %let n=1; %let from=%scan(&&in,&&n," "); %do %while("&&from" ne ""); %let fromwb=%scan(&&from,1,"!"); %let fromws=%scan(&&from,2,"!"); put "XL.Workbooks.Open ""&&fromwb"""; %if &&n=1 %then put "XL.ActiveWorkbook.SaveAs ""&&out"", -4143"%str(;); %else %do; put "XL.Workbooks(""%scan(&&fromwb,-1,'\')"").Sheets(""&&fromws"").Copy ,XL.Workbooks(""%scan(&&out,-1,'\')"").Sheets(%eval(&&n-1))"; put "XL.Workbooks(""%scan(&&fromwb,-1,'\')"").Close"; %end; %let n=%eval(&&n+1); %let from=%scan(&&in,&&n, " "); %end; put "XL.Workbooks(""%scan(&&out,-1,'\')"").sheets(1).activate"; put "XL.Workbooks(""%scan(&out,-1,'\')"").Save"; put "XL.Quit"; run; x ‘c:\temp\class.vbs’; %mend; %UNE_EXCEL(in= c:\temp\shoes.xls!shoes c:\temp\retail.xls!retail, out=c:\temp\TodasJuntas.xls);