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

时间:2018-01-29 06:57:46

标签: excel excel-vba ms-word word-vba vba

我可以将<div class="feed-comment-area" id="feed-comment-<?php echo $r->ID ?>"> 指定为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 成为objDoc对象的文档,该文档已隐藏objWord我无法使用objWord.Visible = False变量声明)。
  • 我需要Dim objDoc As objWord.Document被隔离,因为在使用时 objWord,不得尝试关闭其他Word文档。 (这里我使用了objWord.Quit
  • 我需要使用Set objWord = New Word.Application语句才能使激活的OLED文档不可见
  • 并且需要设置GetObject才能EndTask 带有objWord = New Word.Application的WINWORD.EXE。
  •   

    但是如何集成以上两个优点: 1)使用OLEObjectDocument工作不可见; 2)如果没有打开其他word文档,则执行EndWask WINWORD.EXE

1 个答案:

答案 0 :(得分:0)

请采取更合乎逻辑的分步方法。请记住,您需要引用Microsoft Word对象库(VBE&gt;工具&gt;参考)。

现在您可以创建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文档,在其自己的Window中不可见,在Word实例中打开,其中没有其他文档打开。您可以操作该文档,关闭它然后退出objWord