【问题标题】:Altering Word view from Excel VBA从 Excel VBA 更改 Word 视图
【发布时间】:2021-03-02 19:46:47
【问题描述】:

我想从我的 Excel 宏(创建 Word 文档)更改 Word 中的视图。

我想执行:ActiveWindow.View.Type = wdWebView

在我的 Excel 宏中,我有:

Dim objWord
Dim objDoc    
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add

【问题讨论】:

  • 你在这里是后期绑定词; wdWebView 没有任何意义,除非你引用了 Word 类型库……在这种情况下,后期绑定除了让你的生活变得比需要的更艰难之外没有什么用处。
  • ActiveWindow 在当前主机应用程序的范围内,即Excel.Application.ActiveWindow - 如果您想要 Word 窗口,则需要处理 objWord 对象。

标签: excel vba ms-word


【解决方案1】:

如 cmets 中所述,您正在混合后期绑定和早期绑定,并且还需要引用 Word 实例。

一种早期绑定方法可能是(在工具 > 参考 下添加对Microsoft Word xx.0 对象库 的参考)。

Sub MyWord()
    Dim wordApp As New Word.Application
    Dim myDoc As Word.Document
    
    wordApp.Visible = True
    Set myDoc = wordApp.Documents.Add
    wordApp.ActiveWindow.View.Type = wdWebView
End Sub

如果您想后期绑定,请注意 WdViewType 枚举文档中的 wdWebView 对应于值 6。

Sub MyWord()
    Const wdWebView As Long = 6
    Dim objWord As Object
    Dim objDoc As Object
    
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    
    Set objDoc = objWord.Documents.Add
    objWord.ActiveWindow.View.Type = wdWebView
End Sub

【讨论】:

    【解决方案2】:

    不必必须使用早期绑定来使用 wdWebView。相反,您可以使用:

    Dim objWord As Object, objDoc As Object
    Const wdWebView As Long = 6
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Add
    objWord.ActiveWindow.View.Type = wdWebView
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多