Ms word 将表格从一个word文档复制并粘贴到另一个SAS DDE
我正在使用SAS v9.4,通过DDE运行到Word 2010的连接 我想将整个表从onw word文档复制并粘贴到另一个文档。该表被标记为“IDX”,我可以使用以下代码选择该表: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
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将永远不会死。(?)