【问题标题】:How to delete tab of excel workbook from SAS?如何从 SAS 中删除 excel 工作簿的选项卡?
【发布时间】:2010-10-04 16:45:18
【问题描述】:

我有以下宏:

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

我的问题是,如果标签已经存在,有时这个宏不会删除它。无论如何,我可以从 SAS 中检查选项卡是否存在,如果存在则将其删除?

【问题讨论】:

    标签: excel sas


    【解决方案1】:

    您可以使用以下宏通过 DDE 删除 Excel 中的工作表。它要求您要从中删除工作表的工作簿是 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);
    

    【讨论】:

      【解决方案2】:
      proc sql; drop table <NAME OF EXCEL TAB>; quit;
      

      【讨论】:

      • 这不会物理删除选项卡,但会删除其中的所有数据。对我来说已经足够好了。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 2017-12-03
      相关资源
      最近更新 更多