/ / Як видалити вкладку книги Excel від SAS? - excel, sas

Як видалити вкладку книги Excel із SAS? - excel, sas

Маю наступний макрос:

%macro export_set_excel(data,tabname);
PROC EXPORT DATA= &data. OUTFILE= "&results." DBMS=EXCEL REPLACE;
SHEET=&tabname.;
RUN;
%mend export_set_excel;

Моя проблема полягає в тому, що іноді цей макрос не видаляє вкладку, якщо вона вже існує.

Відповіді:

3 для відповіді № 1
proc sql; drop table <NAME OF EXCEL TAB>; quit;

4 для відповіді № 2

Ви можете скористатися наведеним нижче макросом для видалення робочого листа в Excel за допомогою DDE. Для цього потрібно, щоб робоча книга, з якої ви хочете видалити аркуш, була поточно активною книгою в 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);