我有一个包含大量表格的长MS Word文档,并且许多表格在每个单元格中都包含隐藏文本,其中包含文本字符串,如“Cell_ID [x,y]”。该字符串是固定的,除了X&的值。 Y可以是1-1000的整数值。
我希望能够拥有一个VBA宏,可以通过编程方式删除每个表中所有出现的文本字符串。如果它是一个固定的字符串,那么我可以简单地进行查找和替换,但是因为X&的值。 Y可以是不同的长度,弦的总长度可以变化。包含此字符串的单元格还包含其他非隐藏文本,需要单独保留。
我的代码可以循环遍历文档中的所有表格,但我不知道如何进行如上所述的查找/替换。
答案 0 :(得分:0)
您可以使用简单的通配符搜索和替换。搜索模式如下所示:
Cell_ID\[[0-9]{1;4},[0-9]{1;4}\]
或
Cell_ID\[[0-9]{1,4},[0-9]{1,4}\]
取决于您设置列表分隔符的内容(参见区域设置)。或者您可以使用更简单的模式,该模式不会检查x和y是否仅为数字:
Cell_ID\[*,*\]
以下是完整的VBA示例:
Selection.Find.ClearFormatting
' find hidden text only
Selection.Find.Font.Hidden = True
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Cell_ID\[[0-9]{1;4},[0-9]{1;4}\]"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll