vba - 运行时错误“5852”请求的对象不可用。.Destination = wdSendToNewDocument 的问题
问题描述
所以我一直在尝试使用下面的宏将邮件合并文档拆分为单个文档。当我运行宏时,我收到“运行时错误 '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
解决方案
这是非常基本的故障排除。你不能只是复制代码而不了解它在做什么。
当您尝试运行邮件合并时,您的 MailMerge 对象不存在。
您需要首先在您的 Word 文档中创建一个邮件合并 - 只需使用向导 - 该对象将被神奇地填充。然后你将不得不进入下一个错误。
推荐阅读
- javascript - 我有一个按钮,并且可以在函数内启动一个图标。如何在不触发图标的情况下拖动按钮?
- mathematical-optimization - 变量求解为连续而不是二进制
- reactjs - 使用 Redux 的 useEffect 竞争条件
- postgresql - Postgres GRANT SELECT ON ALL TABLES IN SCHEMA 只是挂起,没有错误消息
- powershell - 如何在powershell中使用winforms右键单击选项卡时捕获事件
- r - 将 IIS 连接到运行 Shiny 服务器的 Docker 映像
- flutter - 应用多个过滤器(颤振)
- html - 默认值设置为“0”时的角度下拉验证
- python - 警告:以“root”用户身份运行 pip
- cygwin - 如何卸载 Cygwin