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)
这是一个解决方法:
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可以使用文档名称调用
| 归档时间: |
|
| 查看次数: |
18682 次 |
| 最近记录: |