【发布时间】:2021-11-14 05:04:24
【问题描述】:
我已经构建了一个访问数据库,它填充一个表格,然后打开几个 Word 邮件合并模板,生成合并文档并保存它们。代码的相关部分获取或创建 Word 应用程序对象,将合并模板作为文档对象打开,运行邮件合并,然后关闭模板。然后它查找合并输出,使其成为活动文档,另存为(遵循文件命名模式)并关闭它。如果没有其他文档打开,则退出 Word,并释放文档和应用程序对象。
继上周安装的 MS 更新后,这一切都运行良好,但在第二次运行时,生成的合并文档在成为活动文档后停止响应。我已经很难找到谷歌,看看我是否能找到解释或解决方法,但没有运气。有人有什么想法吗?
相关代码:
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If objWord Is Nothing Then
Set objWord = CreateObject("Word.Application")
End If
On Error GoTo 0
Set objDoc = objWord.Documents.Open(templateName)
objWord.Visible = True
objWord.ActiveWindow.View.Type = wdNormalView
objDoc.MailMerge.OpenDataSource Name:= _
tempRoot & "Merge_Output.txt", ConfirmConversions:=False, ReadOnly _
:=True, LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:= _
"", PasswordTemplate:="", WritePasswordDocument:="", _
WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
Connection:="", SQLStatement:="", SQLStatement1:="", SubType:= _
wdMergeSubTypeOther
objDoc.MailMerge.ViewMailMergeFieldCodes = False
objDoc.MailMerge.Execute
objDoc.Close False
For Each openDoc In objWord.Documents
strOpenDoc = openDoc.Name
If strOpenDoc Like "Form Letters*" Then
openDoc.Activate
Exit For
End If
Next openDoc
objWord.ActiveDocument.Content.NoProofing = False
objWord.ActiveDocument.SaveAs TargetDir & "\" & DocBase & "_Designation" '<=====This is where the document stops responding
objWord.ActiveDocument.Close False
If objWord.Documents.Count = 0 Then objWord.Application.Quit
Set objDoc = Nothing
Set objWord = Nothing
【问题讨论】: