SAS 通过 DDE 将数据放入 Excel
SAS put data to Excel via 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 成功打开,但 sheet 仍然是空的。日志告诉我有 19 条记录被写入文件 RANDOM.
为什么数据没有写入我的 Excel sheet 有什么建议吗?它可以与我在 Excel 中的语言设置(德语)相关联吗?
NOXSYNC
在这里是一个错误。
基本上,当我 运行 时发生的事情至少是如果设置了 NOXSYNC
它将不起作用,因为它试图写入 excel sheet 在 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';
我想通过 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 成功打开,但 sheet 仍然是空的。日志告诉我有 19 条记录被写入文件 RANDOM.
为什么数据没有写入我的 Excel sheet 有什么建议吗?它可以与我在 Excel 中的语言设置(德语)相关联吗?
NOXSYNC
在这里是一个错误。
基本上,当我 运行 时发生的事情至少是如果设置了 NOXSYNC
它将不起作用,因为它试图写入 excel sheet 在 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';