0

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

运行时错误“5941”:

请求的集合成员不存在。

到目前为止,我的代码是:

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))

我不确定如何解决此错误。

第二个问题是我在哪里可以设置在此代码中保存文档的目录?

4

1 回答 1

0

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

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)

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

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

于 2018-05-21T13:01:48.133 回答