teclado - ¿Cómo borrar la pestaña del libro de Excel de SAS?
quitar información personal de las propiedades del archivo al guardarlo (2)
proc sql; drop table <NAME OF EXCEL TAB>; quit;
Tengo la siguiente macro:
%macro export_set_excel(data,tabname);
PROC EXPORT DATA= &data. OUTFILE= "&results." DBMS=EXCEL REPLACE;
SHEET=&tabname.;
RUN;
%mend export_set_excel;
Mi problema es que a veces esta macro no elimina la pestaña si ya existe. ¿Hay alguna forma, desde SAS, que pueda verificar si existe una pestaña y eliminarla si lo hace?
Puede usar la macro siguiente para eliminar una hoja de cálculo en Excel mediante DDE. Requiere que el libro de trabajo del que desea eliminar la hoja sea el libro activo actualmente en Excel.
/******************************************************************************
** PROGRAM: MACRO.DDE_WORKSHEET_DELETE.SAS
**
** DESCRIPTION: DELETES THE SPECIFIED WORKSHEET FROM THE ACTIVE WORKBOOK IN
** EXCEL.
**
** PARAMETERS: iWORKSHEET: THE NAME OF THE WORKSHEET. INCLUDE ANY SPACES THAT
** MAY BE CONTAINED IN THE NAME OF THE WORKSHEET.
**
** NOTES: SEE OTHER DDE_MACRO* FILES FOR MORE INFORMATION.
**
*******************************************************************************
** VERSION:
** 1.0 ON: 01APR10 BY: RP
** CREATED.
******************************************************************************/
%macro dde_worksheet_delete(iWorksheet=);
filename cmdexcel dde ''excel|system'';
data _null_;
file cmdexcel;
/*
** DELETE WORKSHEET. NEED TO TEMPORARILY TURN
** OFF ERROR CHECKING TO SUPPRESS PROMPT.
*/
put ''[error(false)]'';
put "%str([workbook.delete(%"&iWorksheet%")])";
put ''[error(true)]'';
run;
filename cmdexcel clear;
%mend;
/*
** EXAMPLE USAGE:
*/
%dde_worksheet_delete(iWorksheet=Sheet1);