Office 2010中的SAS DDE问题



当我运行office 2007时,我的SAS DDE脚本填充、保存并关闭了excel文件。

我最近更新到办公室2010和人口工作良好。。。但excel在保存对话框处停止。我必须手动点击保存,这是我以前不必做的。

有人知道如何解决这个问题吗?

我正在使用的代码:

filename commands DDE 'EXCEL|SYSTEM';
data _null_;
file commands;
put '[OPEN("pathtoexcelfile.xls")]';
run;
data _null_;
file commands;
put "[Save.as(""&saveas_Path.&saveas..xls"")]";
put "[Close]";
run;

您需要在结束语句中添加一个(0)。这个命令告诉它不要提示。

data _null_;
file commands;
put "[Save.as(""&saveas_Path.&saveas..xls"")]";
put "[Close(0)]";
run;

这是我的完整宏(解释了一些文档类型参数):

/******************************************************************************
** PROGRAM:  MACRO.DDE_SAVE_AS.SAS
**
** DESCRIPTION: SAVES THE CURRENT EXCEL FILE.  IF THE FILE
**              ALREADY EXISTS IT WILL BE OVERWRITTEN.
**
** PARAMETERS: iSAVEAS: THE DESTINATION FILENAME TO SAVE TO.
**             iType  : (OPTIONAL. DEFAULT=BLANK). 
**                      BLANK = XL DEFAULT SAVE TYPE
**                          1 = XLS DOC - OLD SCHOOL! PRE OFFICE 2007?
**                         44 = HTML - PRETTY COOL! CHECK IT OUT... 
**                         51 = XLSX DOC - OFFICE 2007 ONWARDS COMPATIBLE?
**                         57 = PDF
** 
** NOTES:  IF YOU ARE GETTING A DDE ERROR WHEN RUNNING THIS MACRO THEN DOUBLE
**         CHECK YOU HAVE PERMISSIONS TO SAVE WHERE YOU ARE TRYING TO SAVE THE
**         FILE.
** 
*******************************************************************************
** VERSION:
** 1.0 ON: 01APR10 BY: RP
**     CREATED.  
******************************************************************************/
%macro dde_save_as(iSaveAs=,iType=);
  %local iDocTypeClause;
  %let iDocTypeClause=;
  %if "&iType" ne "" %then %do;
    %let iDocTypeClause=,&iType;
  %end;
  filename cmdexcel dde 'excel|system';
  data _null_;
    file cmdexcel;
    put '[error(false)]';
    put "%str([save.as(%"&iSaveAs%"&iDocTypeClause)])";
    put '[error(true)]';
  run;
  filename cmdexcel clear;
%mend;
/*%dde_save_as(iSaveAs=d:rrobxltest, iType=44);*/

我以前使用过以下内容:

put '[save.as("' "&savepath&savename..&save_ext" '",1,,false,,false)]';

我无法说出参数"1"one_answers"false"实现了什么,因为我手头没有DDE文档,也无法在网上找到它(它被称为macrofun.hlp,你可以在许多SUGI论文中找到它的参考文献,例如。http://www2.sas.com/proceedings/sugi26/p011-26.pdf)

无论如何,可能值得研究DDE的替代方案,DDE在现阶段相当陈旧。

最新更新