SAS通过DDE将数据放入Excel

时间:2017-11-13 14:18:29

标签: excel sas dde

我想通过DDE向Excel写一些数据并使用以下代码:

option noxwait noxsync;
x call "C:\Program Files (x86)\Microsoft Office\Office15\EXCEL.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中与我的语言设置(德语)连接吗?

2 个答案:

答案 0 :(得分:2)

NOXSYNC在这里是个错误。

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

如果您无法处理XSYNC,则需要添加手动延迟。

我还会在运行之前验证您没有打开Excel,就好像这样做可能正在写入不同于其打开的Excel工作簿。

答案 1 :(得分:2)

我的故事非常疯狂:当我将语言设置从德语改为英语时,它可以正常显示代码。

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

英语Excel

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

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

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