0

我们公司最近从 Office 2010 到 2016 进行了重大升级,现在我们的 VBA 宏之一出现问题,如下所示。

Function MergeIt()
Dim objWord As Word.Document
Dim SaveAsName As String
Dim Year As String
Dim DANo As String
Dim Revision As String
Dim strSource As String

Set objWord = GetObject("G:\Dev_&_Tech_Serv\Development\DAAssessTool\MailMerge1.dot", "Word.Document")
' Make Word visible.
objWord.Application.Visible = True
'Set the mail merge data source as the DAApproval Database.
objWord.MailMerge.OpenDataSource Name:="G:\Dev_&_Tech_Serv\Development\DAAssessTool" & "\DARevD.mdb", LinkToSource:=True, Connection:="QUERY qry_Mailmerge", SQLStatement:="Select * from [DAConCheckID]"
' Execute the mail merge.
objWord.MailMerge.Execute
' Close the original form document
objWord.Saved = True
objWord.Close (False)
End Function

该错误在第一行引发 - 引发运行时错误 287“应用程序定义或对象定义错误”。我假设以前的开发人员错误地定义了 Word 文档,但我在网上找不到任何显示不同定义方法或如何修复此错误的内容。

我现在求助于 Stack 社区的大量知识,以获取一些关于哪里出了问题以及如何解决问题的灵感。

提前致谢。

4

1 回答 1

1

您最好的选择是将这些旧的 .dot 文件转换为较新的 .dotx 格式。

如果这不可行,请尝试在 Word 选项/信任中心/文件阻止设置中取消阻止这些旧格式

请参阅http://answers.microsoft.com/en-us/office/forum/office_2016-word/word-2016-cannot-open-documents-with-doc/bf12fa10-4e28-4a6b-99b2-d42c1aa8cb4b/

您可能还需要设置G:为受信任的位置(我假设这是一个网络驱动器)。

于 2016-03-30T23:04:32.317 回答