VBA Word - 反向遍历文档中的所有段落

VBA Word - iterate through all paragraphs in document in reverse

简而言之问题: 我需要以相反的顺序遍历所有段落。我目前正在使用 For Each 循环:

For Each Paragraph in ActiveDocument.Paragraphs
    ' looping code
Next

为什么我需要这样做: 我从一个错误地格式化列表元素的工具中导出。我需要仔细检查并将所有这些元素设置为 'List' 文字样式。

我让这部分工作使用段落中的各种 ListFormat 属性。问题是列表只是继续,当列表重新启动时它们不会保留。我最终得到的列表编号是 aaaaa。然后bbbb。等等

我打算使用 ListFormat.ListValue 属性 来确定何时重新启动列表(当此值 = 1 时会重新启动),但这不起作用,因为当您将一个段落元素转换为新的 'List' 类型,以下段落也会自动将 ListFormat.ListValue 重置为 1。如果我可以反向循环段落,这将不再是一个问题。

不使用 For Each 循环,而是按索引遍历段落,您可以使用 Step -1 轻松地从最后一段循环到第一段。

Sub Test()
    Dim i As Long
    For i = ActiveDocument.Paragraphs.Count To 1 Step -1
         ActiveDocument.Paragraphs(i).... ' do whatever you want with each paragraph
    Next i
End Sub