我正在使用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]';
,put '[copy]';
,put '[TableCopy]';
,put '[SelectionCopy]';
,但似乎没有任何效果,并且代码崩溃了。有谁知道复制整个表然后将其粘贴到其他文档中的语法?
答案 0 :(得分:2)
这是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网站(https://wordmvp.com)已组装了一个列表-"Word for Windows commands"
Word具有内置命令ListCommands,该命令可生成包含所有Word命令及其当前键和菜单分配的表。但是,它不会使用命令的实际名称列出这些命令。也没有包含命令实际作用的描述。
…
WordCmndsPDF.zip包含所有可拦截的Word命令(Word 97及更高版本)的列表,并使用其正确的英文名称
有关Word命令的其他参考信息,请参见"Visual Basic Equivalents for WordBasic Commands",2014年6月13日。
SAS会议论文中搜索“ WORD DDE”也将提供其他材料。