将特定文档添加到特定的 Word.Application



我可以将objDoc指定为ObjWord的文档(Set objDoc = oDoc.Object之后)吗?

我的代码如下所示:

'Declaration
Dim oDoc As OLEObject
Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim WS as Worksheet
Dim strOdoc as String
'Initialization
Set WS = Whorksheets("Sheet1")
strOdoc = "WordDoc"
Set objWord = New Word.Application
'Set objWord = GetObject(, "Word.Application")
'I need using GetObject to be able to made the activated OLEDocument, invisible.
'And Need Set objWord = New Word.Application to be able
'to EndTask the WINWORD.EXE with objWord.Quit.
objWord.Visible = False
Set oDoc = WS.OLEObjects(strOdoc)
oDoc.Activate
Set objDoc = oDoc.Object
'I need here Add the objDoc to the objWord

  • 我需要objDocobjWord对象的文档,该对象已被objWord.Visible = False隐藏(我不能使用变量声明Dim objDoc As objWord.Document)。
  • 我需要隔离objWord,因为使用objWord.Quit,它不得尝试关闭其他Word文档。(这里我用了Set objWord = New Word.Application)
  • 我需要使用GetObject语句才能使激活的 OLED 不可见
  • 并且需要设置objWord = New Word.Application才能结束任务 赢.EXE与objWord.Quit.
  • 但是,如果没有打开其他Word文档,如何整合上述两个优点:1)使用OLEObjectDocument不可见的工作和2)执行WINWORD的结束任务.EXE呢?

请采取更合乎逻辑的循序渐进的方法。请记住,您需要引用Microsoft Word 对象库(VBE>工具>引用)。

现在,您可以创建 Word 应用程序的实例。默认情况下,它是不可见的。您可以使用它并退出它,而不会影响可能同时运行的 Word 的任何其他实例。这部分代码在逻辑上是正确的,但建议的代码是Set objWord = CreateObject("Word.Application")。这将创建一个新实例。我不确定Set objWord = New Word.Application是否可能做同样的事情,但你不应该同时需要两者。

现在,您可以打开文档。使用Documents.Open方法执行此操作。文档的数据类型Word.Document,而不是 OLEObject。此文档将在窗口中打开,您可以使该窗口不可见。将其称为objWord.Windows(1)objWord.ActiveWindow。也许屏幕上会有一个闪烁,你可能会用objWord.ScreenUpdating = False来对抗。

完成这些步骤后,您将拥有一个普通的Word文档,在其自己的窗口中不可见,在Word实例中打开,其中没有打开其他文档。您可以操作该文档,将其关闭,然后退出objWord

相关内容

最新更新