错误 5941 VBA Word 2016 - 保存文件,从 table 获取名称

Error 5941 VBA Word 2016 - Save file, get name from table

我正在尝试按页拆分我的 word 文档,并将拆分保存为新文件,这些文件以每页上相同的各种表格中的单元格命名。我遇到的错误是:

Run-time 错误“5941”:

请求的 collection 成员不存在。

到目前为止我的代码是:

Sub splitter()
'
'
Dim Counter As Long, Source As Document, Target As Document
Set Source = ActiveDocument
Selection.HomeKey Unit:=wdStory
Pages = Source.BuiltInDocumentProperties(wdPropertyPages)
Counter = 0
While Counter < Pages
Counter = Counter + 1
DocName = "" _
    & Left(ActiveDocument.Tables(3).Rows(1).Cells(2).Range.Text, _
        Len(ActiveDocument.Tables(3).Rows(1).Cells(2).Range.Text)) _
    & Left(ActiveDocument.Tables(5).Rows(1).Cells(2).Range.Text, _
        Len(ActiveDocument.Tables(5).Rows(1).Cells(2).Range.Text)) _
    & Left(ActiveDocument.Tables(6).Rows(1).Cells(2).Range.Text, _
        Len(ActiveDocument.Tables(6).Rows(1).Cells(2).Range.Text))
Source.Bookmarks("\Page").Range.Cut
Set Target = Documents.Add
Target.Range.Paste
Target.SaveAs FileName:=DocName
Target.Close
Wend
End Sub

标题中指定的错误发生在以下代码行中:

DocName = "" _
    & Left(ActiveDocument.Tables(3).Rows(1).Cells(2).Range.Text, _
        Len(ActiveDocument.Tables(3).Rows(1).Cells(2).Range.Text)) _
    & Left(ActiveDocument.Tables(5).Rows(1).Cells(2).Range.Text, _
        Len(ActiveDocument.Tables(5).Rows(1).Cells(2).Range.Text)) _
    & Left(ActiveDocument.Tables(6).Rows(1).Cells(2).Range.Text, _
        Len(ActiveDocument.Tables(6).Rows(1).Cells(2).Range.Text))

我不知道如何解决这个错误。

第二个问题,在这段代码中哪里可以设置文件保存的目录?

至少部分问题是您要获取每个单元格的单元格结束字符。尝试:

DocName = "" _
    & Split(Source.Tables(3).Cell(1 ,2).Range.Text, vbCr)(0) _
    & Split(Source.Tables(5).Cell(1, 2).Range.Text, vbCr)(0) _
    & Split(Source.Tables(6).Cell(1, 2).Range.Text, vbCr)(0)

您也没有提供文件扩展名、格式等作为另存为的一部分。

您可能还对将合并的输出拆分为单独的文档感兴趣 Mailmerge 提示和技巧 线程中的http://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html 其中,除其他外,展示了如何提供所需的 SaveAs 参数。