我们公司最近经历了从办公室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
错误是抛出第一个Set行 - 抛出运行时错误287"应用程序定义或对象定义错误"。我假设前一个开发人员错误地定义了Word文档,但是我无法在网上找到任何显示不同方法的方法,或者如何修复此错误。
我现在转向Stack社区的丰富知识,以获得有关出错的一些灵感,以及如何解决它。
提前致谢。
答案 0 :(得分:1)
您最好的选择是将这些旧的.dot文件转换为较新的.dotx格式。
如果这不可行,请尝试在Word选项/信任中心/文件阻止设置中取消阻止这些旧格式
您可能还需要将!!
设置为受信任位置(我假设它是网络驱动器)。