我想通过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中与我的语言设置(德语)连接吗?
答案 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';