Vba Word 2016:如何仅在表格中查找和替换所有段落标记?

Vba Word 2016:如何仅在表格中查找和替换所有段落标记?,vba,ms-word,Vba,Ms Word,我有一个300多页的Word 2016文档,是从另一个有大量表格的程序导入的。每个表格单元格中至少有一个段落标记。我想找到每一个段落标记,并将其替换为空,但只在表格中(在普通文本中有大量其他段落标记,我想不去管它们) 我可以使用“查找/替换”对话框手动执行,但这需要大量的单击和时间。对话框中没有“仅在表中”选项,因此我似乎需要创建一个VBA宏,但我以前从未这样做过。下面是通过记录“在一个表中查找/替换段落标记”操作生成的宏。为了使它能够同时处理所有表,需要做哪些更改 Dim mytable As

我有一个300多页的Word 2016文档,是从另一个有大量表格的程序导入的。每个表格单元格中至少有一个段落标记。我想找到每一个段落标记,并将其替换为空,但只在表格中(在普通文本中有大量其他段落标记,我想不去管它们)

我可以使用“查找/替换”对话框手动执行,但这需要大量的单击和时间。对话框中没有“仅在表中”选项,因此我似乎需要创建一个VBA宏,但我以前从未这样做过。下面是通过记录“在一个表中查找/替换段落标记”操作生成的宏。为了使它能够同时处理所有表,需要做哪些更改

Dim mytable As Table
Application.ScreenUpdating = False

For Each mytable In ActiveDocument.Tables
mytable.Range.Editors.Add wdEditorEveryone
Next
ActiveDocument.SelectAllEditableRanges (wdEditorEveryone)
ActiveDocument.DeleteAllEditableRanges (wdEditorEveryone)
Application.ScreenUpdating = True
End Sub
Sub FindReplaceInTable()
'
' FindReplaceInTable Macro
'
'
    Selection.Tables(1).Select
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^p"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchKashida = False
        .MatchDiacritics = False
        .MatchAlefHamza = False
        .MatchControl = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub
提前感谢。

试试:

Sub ClearTblParaBreaks()
Application.ScreenUpdating = False
Dim Tbl As Table
For Each Tbl In ActiveDocument.Tables
  With Tbl.Range.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Format = False
    .Forward = True
    .Wrap = wdFindStop
    .MatchWildcards = True
    .Text = "[^13]{1,}"
    .Replacement.Text = ""
    .Execute Replace:=wdReplaceAll
  End With
Next
Application.ScreenUpdating = True
End Sub