VBA 替换 table 中的所有匹配项(Word)

VBA replacing all matches in the table (Word)

我在 Word 中有一个 table,在第 3 行我有“1. 文本”,我正在尝试删除该点。我知道不用vba也可以,我只是在练习一些简单的东西。

Sub Test()

Dim replacePattern As String
Dim RE As RegExp
Set RE = New RegExp

RE.Pattern = "(^[0-9]).(\s[A-Za-z\s]*)"
RE.Global = True
replacePattern = ""

Set Matches = RE.Execute(Selection.Text)
For Each Match In Matches
    Selection.Text = RE.Replace(Selection.Text, replacePattern)
Next
End Sub

现在它只替换第一个选定单元格中的文本。我怎样才能正确地做到这一点?

这里棘手的部分是处理 table 单元格中的文本。 你现在这样做的方式会删除很多 table 信息,你最终会得到一个乱码文件。
如果你逐个细胞地做,会更容易:

For Each Table In ActiveDocument.Tables
    For Each Cell In Table.Range.Cells
        Set Matches = RE.Execute(Cell.Range.Text)
        For Each Match In Matches
            Cell.Range.Text = RE.Replace(Cell.Range.Text, replacePattern)
        Next
    Next
Next