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

时间:2019-09-09 01:52:08

标签: vba loops ms-word reverse paragraph

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

For Each Paragraph in ActiveDocument.Paragraphs
    ' looping code
Next

我为什么要这样做: 我从一个错误导出列表元素格式的工具中导出了文件。我需要仔细研究并将所有这些元素设置为“列表”字样式。

我通过使用段落中的各种ListFormat属性来完成这一部分。问题在于列表只是继续,列表重新启动时不会保留。我最后列出的号码是aaaaa。然后bbbbb。等

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

1 个答案:

答案 0 :(得分:2)

与其使用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