Ms word 将表格从一个word文档复制并粘贴到另一个SAS DDE

Ms word 将表格从一个word文档复制并粘贴到另一个SAS DDE,ms-word,sas,dde,Ms Word,Sas,Dde,我正在使用SAS v9.4,通过DDE运行到Word 2010的连接 我想将整个表从onw word文档复制并粘贴到另一个文档。该表被标记为“IDX”,我可以使用以下代码选择该表: options noxsync noxwait xmin; filename sas2word dde 'winword|system'; data _null_; file sas2word; put '[EditGoTo.Destination = "IDX"]'; put '[TableSelect

我正在使用SAS v9.4,通过DDE运行到Word 2010的连接

我想将整个表从onw word文档复制并粘贴到另一个文档。该表被标记为“IDX”,我可以使用以下代码选择该表:

options noxsync noxwait xmin;
filename sas2word dde 'winword|system';
data _null_;
  file sas2word;
  put '[EditGoTo.Destination = "IDX"]';
  put '[TableSelectTable]';
run;

我试过
put'[ctrl+c]'
放置“[copy]”
放置“[TableCopy]”
放入“[SelectionCopy]”但似乎什么都不起作用,代码崩溃了。有人知道复制整个表格然后将其粘贴到另一个文档中的语法吗?

下面是SAS 9.4M4示例代码,它使用实验性的ODS WORD
目标创建两个WORD文档,并将表格从一个复制到另一个。YMMV,您可能还需要处理一些问题,例如表包装和锚定

filename one "c:\temp\one.docx";
filename two "c:\temp\two.docx";

ods _all_ close;

title; footnote;

options nocenter nonumber nodate;

ods word file=one;
  proc print data=sashelp.class (obs=5);
  proc print data=sashelp.cars (obs=5);
  proc print data=sashelp.demographics (obs=5);
  proc print data=sashelp.class (obs=5);
  run;
ods word close;

ods word file=two;
  proc print data=sashelp.cars (obs=10);
  run;
ods word close;

* start WORD;
options noxsync noxwait xmin;
%sysexec start "Yada yada yada" winword;
%let rc = %sysfunc(sleep(5,1));
%put NOTE: &=rc;

* define channel for sending commands;
filename word_cmd dde 'winword|system';

* put will send the commands to WORD;
data _null_;
  file word_cmd;
  cmd = cats ( "[FileOpen.Name=", quote(trim(pathname("One"))), "]");
  put cmd;

  put '[EditBookmark name:="IDX3", goto:=1]';
  put '[NextObject]';
  put '[GoToNextSection]';
  put '[TableSelectTable]';
  put '[EditCopy]';

  cmd = cats ( "[FileOpen.Name=", quote(trim(pathname("Two"))), "]");
  put cmd;
  put '[Selection.Goto(wdGotoLine, wdGotoLast)]';
  put '[EditPaste]';
run;
Word命令
ListCommands
将创建一个包含所有Word命令和活动键映射的表的文档

data _null_;
  file word_cmd;
  put '[ListCommands]';
run;
该列表在Word 2016中长达10页。Word命令也可以从dde连接调用。不幸的是,
ListCommands
列出了一个描述性的命令名,而不是dde实际需要的命令,也没有列出所有命令。WordMVP站点()已汇总了一个列表-

Word有一个内置命令ListCommands,它生成一个包含所有Word命令及其当前键和菜单指定的表。但是,它没有使用命令的实际名称列出命令;也不包括对命令实际作用的描述。

包含使用正确英文名称的所有可拦截Word命令(Word 97及以上)的列表

有关Word命令的另一参考资料,请访问2014年6月13日


SAS会议论文搜索“WORD DDE”也将提供额外的材料。

尝试
复制
,大写C和
粘贴
,大写p。这些已经存在很长时间了,很难想象它们是不同的。您是否检查了Excel引用中的内容?此外,如果您正在处理多个文件,您可能希望每个文件都有特定的fileref,否则很难知道哪个文件要放在哪里。不幸的是,
Copy
Paste
不起作用,它们只是以相同的方式崩溃:(我喜欢关于不同文件引用的想法,一旦我在一个文档中进行了复制/粘贴,我一定会尝试并实现它。我找到了一个对
copy()的Excel引用)
here:,但这也会崩溃,所以我不确定出了什么问题。命令中是否包含括号?我尝试过使用和不使用parenthasis,但都没有工作:(DDE将永远不会死。(?)