0

我正在尝试使用 DDE(动态数据交换)将 SAS 数据集导出到预先格式化的 Excel 模板文档。我在 WPS v4 和 Excel 2016 中使用 SAS 代码。我正在使用以下代码:

options noxwait noxsync;

x "'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Excel 2016.lnk'";

data _null_;
   T = sleep(10);
run;

filename xl 
   DDE "Excel|[N:\Analysis\DDE\Template.xlsx]sheet1!r2c2:r1245c78" notab 
lrecl=650;
run;

data _null_;
   file xl dlm='09'x dsd;
   set &sasData.;
   put var1 var2 var3;
run;

此代码产生以下错误:

错误:无法连接到 Excel|[N:\Analysis\DDE\Template.xlsx]sheet1!r2c2:r1245c78 :返回错误 DMLERR_NO_CONV_ESTABLISHED

代码的第一部分正在运行,因为它在运行时打开了 Excel。

我尝试在我的 Excel 工作簿上禁用受保护的视图,并为我的模板文档使用旧版 (xls) 的 Excel。这并没有解决问题。

有人可以帮忙吗?

4

1 回答 1

1

添加以下代码似乎可以解决此特定错误:

 filename xl dde 'excel|system';
   data _null_;
      file xl;
      put '[FILE-OPEN("N:\Analysis\DDE\Template.xlsx")]';
 run;

这会将 .xlsx 模板文件与 DDE/Excel 相关联。

于 2018-11-15T15:47:52.593 回答