Vba 将Word文档拆分为多个部分并保留文本格式

Vba 将Word文档拆分为多个部分并保留文本格式,vba,vbscript,ms-word,Vba,Vbscript,Ms Word,我的任务 根据分隔符将Word文档拆分为多个部分,同时保留文本格式 我在哪里 我用一个文档尝试了一个基本的例子,但没有数组,它成功了 Option Explicit Public Sub CopyWithFormat() Dim docDestination As Word.Document Dim docSource As Word.Document Set docDestination = ActiveDocument Set docSource

我的任务

根据分隔符将Word文档拆分为多个部分,同时保留文本格式

我在哪里

我用一个文档尝试了一个基本的例子,但没有数组,它成功了

Option Explicit

Public Sub CopyWithFormat()
    Dim docDestination As Word.Document
    Dim docSource      As Word.Document

    Set docDestination = ActiveDocument
    Set docSource      = Documents.Add

    docSource.Range.FormattedText = docDestination.Range.FormattedText
    docSource.SaveAs "C:\Temp\" & "test.docx"
    docSource.Close True             
End Sub
我卡在哪里

我将整个文档放入一个数组中并循环遍历它。对不对,我得到一个错误424-此行需要对象: docDestination.Range.FormattedText=arrNotesI

我还尝试了这四种变体,但运气不佳:

docDestination.Range.FormattedText = arrNotes(I).Range.FormattedText
docDestination.Range.FormattedText = arrNotes(I).FormattedText
docDestination.Range.FormattedText = arrNotes.Range.FormattedText(I)
docDestination.Range.FormattedText = arrNotes.FormattedText(I)
你能帮我指出正确的方向,告诉我如何正确访问阵列吗

我的代码

Range.FormattedText返回一个范围对象。另一方面,Split函数返回不包含格式的字符串数组。因此,代码应该找到要复制的文档部分,并将该部分的FormattedText分配给声明为Range的变量。然后可以将该变量插入到另一个文档中

Private Sub CopyRange()

    Dim Src As Range, Dest As Range
    Dim Arr As Range

    Set Src = Selection.Range
    Set Arr = Src.FormattedText

    Set Dest = ActiveDocument.Range(1, 1)
    Dest.FormattedText = Arr
End Sub
上面的代码实际上是有效的。您需要做的就是找到一种方法,用一种方法来替换概念中的Split函数,该方法标识源文档中的范围而不是字符串

Private Sub CopyRange()

    Dim Src As Range, Dest As Range
    Dim Arr As Range

    Set Src = Selection.Range
    Set Arr = Src.FormattedText

    Set Dest = ActiveDocument.Range(1, 1)
    Dest.FormattedText = Arr
End Sub