Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SAS通过DDE将数据放入Excel_Excel_Sas_Dde - Fatal编程技术网

SAS通过DDE将数据放入Excel

SAS通过DDE将数据放入Excel,excel,sas,dde,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_;

我想通过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条记录被随机写入文件


有没有关于为什么数据没有写入我的Excel工作表的建议?它是否可以与Excel中的我的语言设置(德语)连接?

NOXSYNC
在这里是一个错误

基本上,如果设置了
NOXSYNC
,当我运行此程序时会发生的情况至少是它将不起作用,因为它试图在excel准备就绪之前写入excel工作表。您需要
XSYNC
让SAS等待
X
命令完成

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


在运行此操作之前,我还要确认您没有打开Excel,如果您打开了,则可能会将其写入与其打开的Excel工作簿不同的Excel工作簿。

NOXSYNC
在这里是一个错误

基本上,如果设置了
NOXSYNC
,当我运行此程序时会发生的情况至少是它将不起作用,因为它试图在excel准备就绪之前写入excel工作表。您需要
XSYNC
让SAS等待
X
命令完成

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


在运行此操作之前,我还要确认您没有打开Excel,好像您打开了Excel,它可能正在写入与其打开的Excel工作簿不同的Excel工作簿。

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

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

英语成绩优异

filename random dde 'excel|Sheet1!r1c1:r100c3';
德语Excel使用z(eile)和s(palte)代替r(ow)和c(列)


非常疯狂的故事:当我将语言设置从德语更改为英语时,它与显示的代码配合得很好

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

英语成绩优异

filename random dde 'excel|Sheet1!r1c1:r100c3';
德语Excel使用z(eile)和s(palte)代替r(ow)和c(列)



您是否尝试过在打开excel和运行数据步骤之间添加5秒延迟?是的,请在我的问题中找到我的编辑。我将重新考虑DDE的使用。请尝试改用
ods excel
,尤其是当您只是将表格转储到新工作表时。@RobertPenridge:这不符合我的要求。我有一个Excel模板文件,想添加一些数据。在其他情况下,您是对的。您是否尝试过在打开excel和运行数据步骤之间添加5秒延迟?是的,请在我的问题中找到我的编辑。我将重新考虑DDE的使用。请尝试改用
ods excel
,尤其是当您只是将表格转储到新工作表时。@RobertPenridge:这不符合我的要求。我有一个Excel模板文件,想添加一些数据。在其他情况下,你是对的。谢谢你的提示,但是我的问题没有解决。我尝试了,
xsync
和delay,但启动代码时始终没有打开Excel实例。我在同事的电脑上看到了类似的代码。但是我们找不到我的问题。@zuluk您的机器上的x窗口保持打开吗?是的,使用
noxsync
。不使用
xsync
。如果您不做任何其他操作就运行它两次呢?第一次会议是否会被写入?(当我没有
xsync
或延迟时,它会对我产生影响。)我必须纠正:从
xsync
开始,5秒延迟导致挂起会话。它表示“X命令处于活动状态”。使用
noxsync
运行两次程序将导致两个空Excel文件和工作表。马上就好。谢谢你的提示,但是我的问题没有解决。我尝试了,
xsync
和delay,但启动代码时始终没有打开Excel实例。我在同事的电脑上看到了类似的代码。但是我们找不到我的问题。@zuluk您的机器上的x窗口保持打开吗?是的,使用
noxsync
。不使用
xsync
。如果您不做任何其他操作就运行它两次呢?第一次会议是否会被写入?(当我没有
xsync
或延迟时,它会对我产生影响。)我必须纠正:从
xsync
开始,5秒延迟导致挂起会话。它表示“X命令处于活动状态”。使用
noxsync
运行两次程序将导致两个空Excel文件和工作表。马上就好。很高兴你把它整理好了。您可能希望与其他德国开发人员交谈,看看是否有一些特定的东西可以让它在德语中工作——如果不太可能的话,也有可能存在一些细微的差异(甚至可能不使用
Tabelle
,但
Sheet
,即使在德语中运行也是如此?)。如果您使用的文件已经存在并且具有您的德语名称,会发生什么情况?我想那也行。很高兴你把它整理好了。您可能希望与其他德国开发人员交谈,看看是否有一些特定的东西可以让它在德语中工作——如果不太可能的话,也有可能存在一些细微的差异(甚至可能不使用
Tabelle
,但
Sheet
,即使在德语中运行也是如此?)。如果您使用的文件已经存在并且具有您的德语名称,会发生什么情况?我想那也行。