SAS通过DDE将数据发送到Excel

我想通过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条logging被写入文件RANDOM。

任何build议,为什么数据不写入我的Excel表格? 它可以连接到我的语言设置(德语)在Excel中?

NOXSYNC在这里是一个错误。

基本上,当我至less运行这个时会发生什么,如果NOXSYNC被设置,它将NOXSYNC ,因为它会在Excel准备好之前尝试写入Excel表格。 您需要XSYNC才能让SAS等待X命令完成。

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

在运行这个程序之前,我还要确认你没有打开Excel,就好像你可能正在写一个不同的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';