您的位置:程序门 -> vb -> vba



如何从excel的宏向word传送宏命令?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何从excel的宏向word传送宏命令?
发表于:2007-03-27 10:13:17 楼主
目的:在1.xls中运行   宏a,该宏将打开word文件   2.doc,   在2.doc中获取一些值,
            返回给   宏a。   在2.doc中获取值的过程,已经在word下做出了宏b。

              sub   宏b           '---------   word环境下的代码
                  with   ...
                      if...   then
                          ...
                      end   if
                  end   with
              end   sub

需求:不想把宏b放在word中,而是想把宏b的代码放在   宏a   的代码段内,a向2.doc
            发送宏b的代码,并让word运行它。

问题:目前我只能想到用   ddeEXECute   语句。但是行不通:
              1。ddeEXECute   channeln,   command   中,   command   被传送时,在word中被
                    解读为   wordbasic语句。   这样要把宏b中的语句自己转化为wordbaisc语
                    言,太麻烦。
              2。即使转化成   wordbasic,也要很麻烦地加上[],和chr(34),再进行string
                    连接,很头疼。
            应该有一个办法,将宏b的代码段较为简单的封装在宏a中,并传送到word中得
            到执行吧?

望高手指教!感谢
             
发表于:2007-03-27 10:26:371楼 得分:0
你可以动态把宏代码插入到word文件中再运行它。
发表于:2007-03-27 10:29:292楼 得分:0
麻烦楼上再稍详细的指点一下吧,谢谢   :)
发表于:2007-05-07 17:52:203楼 得分:0
可先获得word对象,然后用该对象操纵word,获得word对象的方法:
on   error   resume   next
set   wd   =   getobject(,   "word.application ")
if   err.number   <>   0   then
        err.clear
        set   wd   =   createobject( "word.application ")
end   if
wd.visible   =   true
接下来,就可用wd操纵word,让word运行代码,如:
set   reportfile   =   wd.documents.add
reportfile.content.insertparagraphafter
发表于:2007-05-13 13:52:044楼 得分:0
该回复于2007-12-28 17:58:16被管理员或版主删除


快速检索

最新资讯
热门点击