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

时间:2017-11-07 12:56:14

标签: vba excel-vba excel

我有一个代码。它不会在2016年运行。这是一个Office 16问题

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

我收到错误加载DLL时出错。我已经包含了库 Microsoft Word 16.0对象库

问候 安娜

3 个答案:

答案 0 :(得分:2)

我通常有一个BAS文件,其中包含' CreateWord'我拖入任何需要它的工作簿/数据库的功能。

首先,它使用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 :(得分:1)

我不确定您的问题是什么,但如果您只是想在默认的MS Office中打开一个新的Word文档,那么您可以使用此代码的和平

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

答案 2 :(得分:0)

您正在尝试使用早期绑定。这是明智的,因为它有点快,它给你智能感知,这很好。但是,要使用它,您应该添加相应的库。

但是,如果使用较慢的后期绑定,则无需添加任何库。它没有智能感知,而且会慢一些(但可能不会引人注意)。

试试这样:

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

Early binding vs. late binding: what are the comparative benefits and disadvantages?