如何查找Word文档中的页面是否具有特定文本的组合?

时间:2019-01-24 04:31:06

标签: vb.net ms-word interop

我是单词互操作的新手。

我有一个文档,仅在表格的开头插入了以下文本。

OAAssistant3 | Table | Header | After | N | T **请勿删除此文本** <> {TN} GRA302

在所有其他页面上,仅插入了{TN}。

我如何查找页面上是否出现了同时带有'OAAssistant3'和{TN}的文本?

此文本'OAAssistant3'是隐藏文本,而{TN}不是隐藏文本。

我已使用以下代码找到{TN} 但是我想搜索页面是否同时具有OAAssistant3和{TN}。

我该怎么办?

    Dim tableNameSearchRange As Word.Range = document.WordDocument.Content

    With tableNameSearchRange
        .TextRetrievalMode.IncludeHiddenText = False
        .TextRetrievalMode.IncludeFieldCodes = False
        .Find.Text = "\{TN*\}?"
        .Find.MatchWildcards = True
        .Find.Forward = True
        .Find.Wrap = Word.WdFindWrap.wdFindStop
    End With

1 个答案:

答案 0 :(得分:0)

假设您要替换TN-在此处和在其他线程中的问题描述不清楚-在VBA中,您可以使用以下代码进行此操作:

Sub Demo()
Application.ScreenUpdating = False
Dim i As Long
With ActiveDocument.Range
  With .Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "OAAssistant3[!^13\{]@\{TN"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchWildcards = True
    .Execute
  End With
  Do While .Find.Found
    i = i + 1
    .Start = .End - 2
    .Text = i
    .Collapse wdCollapseEnd
    .Find.Execute
  Loop
End With
Application.ScreenUpdating = True
End Sub

是否将任何文本设置为隐藏格式都不重要。我将它留给您进行.NET转换。