Vba 从邮件合并保存单个文档时出错
我一直在使用VBA代码将邮件合并中的所有信件单独保存到指定文件夹中。它以前一直有效,但是我现在尝试这样做,它只是保存第一个文档,然后出现一个错误,说明: 已删除运行时错误“5825”对象 当我去调试时,它突出显示底部附近的一行,读“DocResult.Close False” 我怎样才能解决这个问题 尝试将此更改为True或完全删除行,但无法解决问题。每个文档都相当大,因此需要大约30秒才能保存Vba 从邮件合并保存单个文档时出错,vba,ms-word,mailmerge,Vba,Ms Word,Mailmerge,我一直在使用VBA代码将邮件合并中的所有信件单独保存到指定文件夹中。它以前一直有效,但是我现在尝试这样做,它只是保存第一个文档,然后出现一个错误,说明: 已删除运行时错误“5825”对象 当我去调试时,它突出显示底部附近的一行,读“DocResult.Close False” 我怎样才能解决这个问题 尝试将此更改为True或完全删除行,但无法解决问题。每个文档都相当大,因此需要大约30秒才能保存 Dim WithEvents wdapp As Application Dim bCustomPro
Dim WithEvents wdapp As Application
Dim bCustomProcessing As Boolean
Private Sub Document_Open()
Set wdapp = Application
bCustomProcessing = False
ThisDocument.MailMerge.DataSource.ActiveRecord = 1
ThisDocument.MailMerge.ShowWizard 1
With ActiveDocument.MailMerge
If .MainDocumentType = wdFormLetters Then
.ShowSendToCustom = "Custom Letter Processing"
End If
End With
End Sub
Private Sub wdapp_MailMergeWizardSendToCustom(ByVal Doc As Document)
bCustomProcessing = True
Doc.MailMerge.Destination = wdSendToNewDocument
With Doc.MailMerge
For rec = 1 To .DataSource.RecordCount
.DataSource.ActiveRecord = rec
.DataSource.FirstRecord = rec
.DataSource.LastRecord = rec
.Execute
Next
End With
MsgBox "Merge Finished"
End Sub
Private Sub wdapp_MailMergeAfterMerge(ByVal Doc As Document, ByVal DocResult As Document)
If bCustomProcessing = True Then
With Doc.MailMerge.DataSource.DataFields
sFirmFileName = .Item(44).Value ' First Column of the data - CHANGE
End With
DocResult.SaveAs "xxx\" & sFirmFileName & ".doc", wdFormatDocument
' Path and File Name to save. can use other formats like wdFormatPDF too
DocResult.Close False
End If
End Sub
您必须将对象设置为如下所示:
Set DocResult=nothing
您必须将对象设置为不包含以下内容:
Set DocResult=nothing
您是否尝试过DocResult.Close
我尝试过,但不幸的是我遇到了相同的错误,我认为您必须这样做:Set DocResult=nothing
并删除DocResult.Close False
。我认为它应该可以工作,如果你尝试DocResult.Close
我这样做了,但不幸的是我得到了同样的错误我认为你必须这样做:设置DocResult=nothing
并删除DocResult.Close False
。我觉得应该行得通