SAS 通过 DDE 将数据放入 Excel



我想通过DDE将一些数据写入Excel,并具有以下代码:

option noxwait noxsync;
x call "C:Program Files (x86)Microsoft OfficeOffice15EXCEL.EXE";
%let delay=5;
data _null_;
    rc=sleep(&delay); 
run;
filename random dde 'excel|Tabelle1!r1c1:r100c3';
data _null_;
    set sashelp.class;
    file random;
    put name sex age;
run;

Excel 成功打开,但工作表仍为空。日志告诉我,有 19 条记录被写入文件 RANDOM。

为什么数据没有写入我的 Excel 工作表的任何建议?它可以与我在 Excel 中的语言设置(德语(连接吗?

NOXSYNC在这里是一个错误。

基本上,至少当我运行它时会发生什么,如果设置了NOXSYNC它将无法工作,因为它会在 Excel 准备好之前尝试写入 excel 工作表。 需要XSYNC才能让 SAS 等待X命令完成。

如果XSYNC是您无法处理的事情,那么您将需要添加手动延迟。

在运行此操作之前,我还会验证您是否没有打开 Excel,因为如果您这样做,它可能正在写入与它打开的工作簿不同的 Excel 工作簿。

我这边非常疯狂的故事:当我将语言设置从德语更改为英语时,它与显示的代码一起工作。

更新:它也适用于德语设置,但是我必须翻译所有语句,例如写入的范围:

英语精益求精

filename random dde 'excel|Sheet1!r1c1:r100c3';

德语 Excel 使用 z(eile( 和 s(palte( 代替 r(ow( 和 c(olumn(

filename random dde 'excel|Tabelle1!z1s1:z100s3';

最新更新