【问题标题】:SAS DDE to Excel 2016 fix/ alternative?SAS DDE 到 Excel 2016 修复/替代?
【发布时间】:2019-06-22 16:30:45
【问题描述】:

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

下面是使用的代码:

** Use DDE to port the data to Excel template.;
* Start Excel.;

OPTIONS NOXWAIT NOXSYNC;

X "'C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE'";

DATA _NULL_;
   zzzz = sleep(20);
RUN;

* Open the Excel file.;

FILENAME CMDEXCEL DDE 'EXCEL|SYSTEM';

DATA _NULL_;
   FILE CMDEXCEL;
    PUT '[OPEN("I:\J3 O\J3 OP Integration Division\Customer Support\RESEARCH\Weekly Workload\Open Ticket SAS Reports\Open_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 O\J3 OP Integration Division\Customer Support\RESEARCH\Weekly Workload\Open Ticket SAS Reports\Open Ticket Detail Report &rpt_date2..xlsx"'")]';
  PUT '[QUIT()]';
run;

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

我也查看了来自

的答案

SAS put data to Excel via DDE

Problems with SAS DDE with Office 2010

Change from DDE to proc export because office 2016 does not support it

我认为最后一个链接最有帮助,但我想尽量保持代码不变。

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

感谢您的帮助。我非常感谢时间。

注意:我已经阅读了修复 microsoftworks 的选项,但目前这不是我可以选择的选项。

【问题讨论】:

  • Excel 是否启用了 DDE 作为选项?它可能会打开(系统命令),但如果未启用,则可能不接受 DDE 命令。您需要提供更多信息,说明问题出在哪里以及 SAS 是否存在错误。
  • @Reeza 我在哪里可以找到该设置?选项-高级-通用-忽略使用 DDE 的应用程序下的设置是否相同?错误发生在:DATA NULL;文件 CMDEXCEL; PUT '[OPEN("I:\J3 O\J3 OP 集成部门\客户支持\RESEARCH\Weekly Workload\Open Ticket SAS Reports\Open_detail_Template.xlsx")]';。 Excel 可以正常打开,但模板根本无法打开。它一直挂在那里,直到我在任务管理器中杀死 SAS。
  • 不,它在信任中心,请参阅本页一半左右的说明。您可能需要同时设置这两个选项。 support.office.com/en-us/article/…
  • @Reeza 我看了看页面。我启用了设置的第一部分,有趣的是缺少 DDE 部分。关于为什么会这样的任何想法?
  • 您使用的是 Office 365、2016、2010 吗?

标签: excel sas excel-2016 dde


【解决方案1】:

DDE 是一种古老的技术。与 PC 上的其他进程有一些奇怪的交互,可能会导致它崩溃。如果你能找出你正在运行的其他程序正在劫持 DDE 信号并关闭它,你可能会让它工作。

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

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

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

【讨论】:

  • 感谢您提供此信息。我将阅读它并将其添加到我的代码中,看看它是如何进行的。我将放弃整个 DDE 方法。我已经尝试了好几天,但未能确定哪个应用程序正在劫持信号。
  • 只是一个更新。我阅读了文档并尝试运行宏。看起来当代码运行 VBScript 的 CMD 提示时,我被拒绝访问。非常有用的答案仍然
猜你喜欢
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 2019-04-04
相关资源
最近更新 更多