VBA - Word - 随着时间的推移,遍历段落的速度会令人难以置信地变慢

Rys*_*zyk 5 vba ms-word

我有以下部分代码,随着时间的推移,它的执行速度会减慢。我的 Word 文档有超过 200 页和大约 12000 个段落。在第 3000 段左右,可以说执行速度比开始时慢了几倍。

有什么办法可以让速度保持在同一水平?也许遍历段落对于大文档根本没有办法?

Dim worddoc As Word.Document
Dim ParaCount as long, J as long, x as long
Dim RowData as string

With worddoc
    ParaCount = .Paragraphs.Count
    For J = 1 To ParaCount    
        RowData = .Paragraphs(J).Range.Text       
        x = x + 1
        If x Mod 10 = 0 Then Application.StatusBar = x
    Next ParaCount
End With
Run Code Online (Sandbox Code Playgroud)

Rya*_*dry 9

像这样的事情应该有效。我相信你已经让它工作了,但对于后代来说,这里是For Each提到的方法。

Public Sub Iterate_Paragraphs()
    Dim Paragraph As Word.Paragraph

    For Each Paragraph In ActiveDocument.Paragraphs
        Debug.Print Paragraph.Range.Text
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)