我有一个代码。它不会在2016年运行。这是一个Office 16问题
Dim objWordApp as Word.Application
Dim objWordDoc as Word.document
Set objWordApp = new Word.application
我收到错误加载DLL时出错。我已经包含了库 Microsoft Word 16.0对象库
问候 安娜
答案 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?