excel - 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 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,重新启动我的计算机并运行它等等。
我也调查了来自的答案
从 DDE 更改为 proc 导出,因为 office 2016 不支持它
我认为最后一个链接是最有帮助的,但我想尽量保持代码不变。
我确实有 SAS PC/ACCESS 许可证,所以我想 proc import 和 proc export 可能是一种选择。我不太确定如何复制它以执行与 DDE 代码相同的步骤。
感谢您的帮助。我非常感谢时间。
注意:我已经阅读了修复 microsoftworks 的选项,但是目前这不是我可以选择的选项。
解决方案
DDE 是一种古老的技术。与 PC 上的其他进程有一些奇怪的交互,可能会导致它崩溃。如果您能找出您正在运行的其他程序正在劫持 DDE 信号并关闭它,您可能会使其工作。
或者切换到另一种方法。比如Visual Basic。
看看这篇论文。请参阅示例 8,了解与您的情况相近的内容。
推荐阅读
- cmake - 使用静态库时出现分段错误
- javascript - 为什么这里没有更新状态?
- ios - 将流式 u-law 转换为 PCM 听起来很金属
- javascript - 调用类而不点击输入
- c++ - 返回对隐式构造参数的引用与隐式构造的内部对象
- ansible - 将 ansible 字典列表值转换为键,将键转换为值
- firebase - admob 横幅广告不显示在动态列表中
- php - 连接到 Elasticsearch 时使用哪些主机
- react-native - React Native Remove Autofill Space with State set Input
- javascript - 使用 JavaScript 移动鼠标悬停?