运行时错误“5852”请求的对象不可用。 .Destination = wdSendToNewDocument 问题

问题描述 投票:0回答:2

所以我一直在尝试使用下面的宏将邮件合并文档拆分为单独的文档。当我运行宏时,我收到“运行时错误‘5852’请求的对象不可用”。使用调试操作时,该问题突出显示为

.Destination = wdSendToNewDocument

虽然问题可能出在我的 OneDrive 上,但在将文件移动到本地驱动器后,我收到了同样的问题。任何有关如何解决此错误的见解都会有所帮助。

如果需要更多信息,请告诉我,我很乐意尽我所能回答。

参考代码:

   Sub MailMergeToDoc()
'
' MailMergeToDoc Macro
' Collects the results of the mail merge in a document
'
' Sourced from: https://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html
Application.ScreenUpdating = False
Dim StrFolder As String, StrName As String, MainDoc As Document, i As Long, j As Long
Const StrNoChr As String = """*./\:?|"
Set MainDoc = ActiveDocument
With MainDoc
  StrFolder = .Path & "\"
  With .MailMerge
    .Destination = wdSendToNewDocument
    .SuppressBlankLines = True
    On Error Resume Next
    For i = 1 To .DataSource.RecordCount
      With .DataSource
        .FirstRecord = i
        .LastRecord = i
        .ActiveRecord = i
        If Trim(.DataFields("Last_Name")) = "" Then Exit For
        'StrFolder = .DataFields("Folder") & "\"
        StrName = .DataFields("Last_Name") & "_" & .DataFields("First_Name")
      End With
      On Error GoTo NextRecord
      .Execute Pause:=False
      For j = 1 To Len(StrNoChr)
        StrName = Replace(StrName, Mid(StrNoChr, j, 1), "_")
      Next
      StrName = Trim(StrName)
      With ActiveDocument
        'Add the name to the footer
        '.Sections(1).Footers(wdHeaderFooterPrimary).Range.InsertBefore StrName
        .SaveAs FileName:=StrFolder & StrName & ".docx", FileFormat:=wdFormatXMLDocument, AddToRecentFiles:=False
        ' and/or:
        .SaveAs2 FileName:=StrFolder & StrName & ".pdf", FileFormat:=wdFormatPDF, AddToRecentFiles:=False
        .Close SaveChanges:=False
      End With
NextRecord:
    Next i
  End With
End With
Application.ScreenUpdating = True
End Sub
vba ms-word mailmerge
2个回答
0
投票

这是非常基本的故障排除。你不能只是复制代码而不了解它在做什么。

当您尝试运行邮件合并时,您的 MailMerge 对象不存在

您需要先在您的 Word 文档中创建邮件合并 - 只需使用向导 - 该对象将被神奇地填充。然后你将不得不继续你的下一个错误。


0
投票

终于也解决了这个问题,但没有使用你的小费。问题是,即使我将源文档保存到我的桌面,我的桌面仍链接到公司 SharePoint(并且 Sharepoint 在我的路径中)。尽管在 excel 表中有正确的路径,但 Sharepoint 把事情搞砸了。我将我所有的数据复制到我的个人机器上(不用担心,这里没有 PII),更新了路径和宾果游戏!有效。我不是程序员(很明显),所以这花了好几个小时来检查每个提示、每个数据、指向多种方式。但是,仍然为我节省了大约 8 个小时的重命名和归档这些怪异的文件!

© www.soinside.com 2019 - 2024. All rights reserved.