如何使用VBA打开Word应用程序

5

我有一段代码,它在2016年无法运行。这是Office 16的问题吗?

Dim objWordApp as Word.Application
Dim objWordDoc as Word.document
Set objWordApp = new Word.application

我收到一个错误"加载DLL时出错"。我已经包含了库Microsoft Word 16.0 Object Library

谢谢 安娜


1
在VBE中添加给定的引用后,您的代码对我来说可以正常运行。所以,您能否详细说明一下?“无法运行”并不是真正有帮助的信息。您是否收到错误消息?如果是,请与我们分享您收到的错误消息。您是否能够在安装了MS Word和MS Excel 2016的另一台计算机/系统上尝试您的代码?也许您还可以分享一些系统信息,因为这似乎是一个非编程问题:Citrix-Setup?其他版本的Office共同安装等? - Ralph
你能提供一下你如何引入这个库的截图吗? - Vityata
3个回答

6

我不确定您出了什么问题,但如果您只想使用默认的MS Office打开新的Word文档,则可以使用以下代码:

Sub wordopener()
  Dim objWord
  Dim objDoc
  Set objWord = CreateObject("Word.Application")
  Set objDoc = objWord.Documents.Add
  objWord.Visible = True
End Sub

3

通常我会有一个包含“CreateWord”函数的BAS文件,我会将它拖到需要它的任何工作簿/数据库中。

首先,它使用GetObject来测试是否已经打开了Word。如果返回错误,则使用CreateObject创建一个Word实例。

然后,可以通过简单地使用Set oWD_App = CreateWord来打开Word应用程序。

Sub Test()

    Dim oWD_App As Object
    Dim oWD_Doc As Object

    Set oWD_App = CreateWord

    With oWD_App
        Set oWD_Doc = .Documents.Add
    End With

End Sub


Public Function CreateWord(Optional bVisible As Boolean = True) As Object

    Dim oTempWD As Object

    On Error Resume Next
    Set oTempWD = GetObject(, "Word.Application")

    If Err.Number <> 0 Then
        Err.Clear
        On Error GoTo ERROR_HANDLER
        Set oTempWD = CreateObject("Word.Application")
    End If

    oTempWD.Visible = bVisible
    Set CreateWord = oTempWD

    On Error GoTo 0
    Exit Function

ERROR_HANDLER:
    Select Case Err.Number

        Case Else
            MsgBox "Error " & Err.Number & vbCr & _
                " (" & Err.Description & ") in procedure CreateWord."
            Err.Clear
    End Select

End Function

1
你正在尝试使用早期绑定。这是可取的,因为它会更快并且提供智能感知功能,这很好。但是,要使用它,您应该添加相应的库。
然而,如果您使用较慢的后期绑定,就不需要添加任何库。它没有智能感知功能,并且可能会稍微慢一些(但可能不会被注意到)。
像这样尝试:
Option Explicit

Sub TestMe()

    Dim objWord As Object
    Dim objDoc  As Object

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

End Sub

早期绑定与晚期绑定:有什么比较的优势和劣势?


1
它可以在Office 365和Windows 11的64位版本上运行。请检查。 - MindRoasterMir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接