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 mí me resulta más fácil unírmelas todas y tener toda la información contenida en un único Excel.

¡Espero que os resulte útil!

/* GENERAMOS FICHEROS DE EJEMPLO */
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;

ods results;
ods listing;

/* MACRO PARA UNIR LOS FICHEROS EMPLEANDO VBS */
%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;

/* EJEMPLO DE USO */
%UNE_EXCEL(in=c:\temp\shoes.xls!shoes c:\temp\retail.xls!retail, 
           out=c:\temp\TodasJuntas.xls);