SAS DDE到Excel 2016修复/替换



我对SAS编程相对陌生,继承了一段用DDE编写的代码,用于打开数据并将数据导出到模板。

以下是使用的代码:

** Use DDE to port the data to Excel template.;
* Start Excel.;
OPTIONS NOXWAIT NOXSYNC;
X "'C:Program Files (x86)Microsoft OfficeOffice16EXCEL.EXE'";
DATA _NULL_;
zzzz = sleep(20);
RUN;
* Open the Excel file.;
FILENAME CMDEXCEL DDE 'EXCEL|SYSTEM';
DATA _NULL_;
FILE CMDEXCEL;
PUT '[OPEN("I:J3 OJ3 OP Integration DivisionCustomer SupportRESEARCHWeekly WorkloadOpen Ticket SAS ReportsOpen_detail_Template.xlsx")]';
RUN;
DATA _NULL_;
zzzz = sleep(20);
RUN;

* Move labels.;
FILENAME DDEWRITE DDE "EXCEL|Open!r2c1:r7000c14" NOTAB;
DATA _NULL_;
FILE DDEWRITE;
set todays_detail;
if crm_group = 'OP';
put
color '09'x
employee '09'x
ticket_number '09'x
pri_text '09'x
open_date '09'x
due_date '09'x
classification '09'x
requisition_num '09'x
nsn '09'x
dodaac '09'x
depot '09'x
status '09'x
tot_tix '09'x
tot_actions
;
run;
DATA _NULL_;
zzzz = sleep(2);
RUN;

DATA _NULL_;
FILE CMDEXCEL;
PUT '[SAVE.as("'"I:J3 OJ3 OP Integration DivisionCustomer SupportRESEARCHWeekly WorkloadOpen Ticket SAS ReportsOpen Ticket Detail Report &rpt_date2..xlsx"'")]';
PUT '[QUIT()]';
run;

我注意到,X语句可以很好地打开excel应用程序。然而,这就是它挂断的地方。在我同事的计算机上,模板打开,您可以看到数据被写入相应的模板字段。为了使DDE连接正常工作,我尝试了许多不同的方法。我尝试禁用所有加载项,禁用并启用excel中的忽略其他应用程序复选框,关闭所有应用程序并只运行SAS EG,重新启动我的计算机并运行它等。

我还研究了的答案

SAS通过DDE 将数据放入Excel

Office 2010 的SAS DDE问题

从DDE更改为proc导出,因为office 2016不支持

最后一个链接我认为是最有用的,但我想尽量保持代码原样。

我确实有SAS PC/ACCESS许可证,所以我认为proc导入和proc导出可能是一个选项。我不太确定如何复制它来执行与DDE代码相同的步骤。

谢谢你的帮助。我非常感谢你抽出时间。

注意:我已经阅读了修复微软作品的选项,但目前这不是我可以接受的选项。

DDE是一项古老的技术。在你的电脑上,有一些与其他进程的奇怪互动可能会让它崩溃。如果你能弄清楚你正在运行的其他程序劫持DDE信号并关闭它,你可能会让它工作起来

或者切换到另一种方法。例如Visual Basic。

看看这张纸。请参阅示例8了解与您的情况相近的内容。

http://www.sascommunity.org/mwiki/images/d/d6/2444-2018.pdf

最新更新