如何在Excel中打开特定版本的Word 2007/2010

use*_*963 10 excel vba ms-word excel-vba

我安装了Word 2007和2010.我需要在Excel中打开Word,但我需要指定我需要在VBA中打开哪个版本.

我试过晚绑定

Dim wordApp2007 As Object
Dim wordApp2010 As Object

Set wordApp2007 = CreateObject("Word.Application.12")
wordApp2007.Visible = True
Set wordApp2010 = CreateObject("Word.Application.14")
wordApp2010.Visible = True
Run Code Online (Sandbox Code Playgroud)

但都打开Word 2010

我也尝试过使用早期绑定

Dim wordApp As Word.Application
Set wordApp2007 = New Word.Application
wordApp2007.Visible = True
Run Code Online (Sandbox Code Playgroud)

并设置对Word 12.0对象模型的引用,但这仍然打开Word 2010 在此输入图像描述

如果我使用注册每个版本的Word

"C:\Program Files\Microsoft Office\Office12\WINWORD.EXE" /regserver

"C:\Program Files\Microsoft Office\Office14\WINWORD.EXE" /regserver

然后注册的版本打开但我无法打开未注册的.

任何人都可以帮助并告诉我如何使用VBA在Excel中打开特定版本的Word?

谢谢

编辑:示例代码....

Option Explicit

Dim wordApp2007 As Word.Application

Sub Word_InfoEarly()
'early binding
Set wordApp2007 = New Word.Application
wordApp2007.Visible = True

    'other Stuff
    Stop

    wordApp2007.Quit
    Set wordApp2007 = Nothing

End Sub


Sub Word_InfoLate()
Dim wordApp2007 As Object
Dim wordApp2010 As Object

    Set wordApp2007 = CreateObject("Word.Application.12")
    wordApp2007.Visible = True
    Set wordApp2010 = CreateObject("Word.Application.14")
    wordApp2010.Visible = True

    'other Stuff
    Stop

    wordApp2007.Quit
    Set wordApp2007 = Nothing
    wordApp2010.Quit
    Set wordApp2010 = Nothing

End Sub
Run Code Online (Sandbox Code Playgroud)

Sea*_*anC 3

这是一个解决方法:

TaskID = Shell("C:\Program Files\Microsoft Office\Office12\WINWORD.EXE",vbHide) '2007
'TaskID = Shell("C:\Program Files\Microsoft Office\Office14\WINWORD.EXE",vbHide) '2010
GetObject(,"Word.Application")
Run Code Online (Sandbox Code Playgroud)

您还需要测试以前版本的单词是否打开,或者使用基本版本以外的其他内容GetObject来激活窗口,否则无法保证它将获得正确的版本。

另一种方法是在命令中传递文档名称Shell,然后GetObject可以使用文档名称调用