目的:在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中得
到执行吧?望高手指教!感谢
返回给 宏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中得
到执行吧?望高手指教!感谢
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