搜索特定列后,如何使用 MS Word VBA 代码对具有特定文本的单元格进行着色?

Posted

技术标签:

【中文标题】搜索特定列后,如何使用 MS Word VBA 代码对具有特定文本的单元格进行着色?【英文标题】:How do I use MS Word VBA code to shade cells with specific text after seaching a a specific column? 【发布时间】:2021-05-20 16:44:00 【问题描述】:

我正在使用 word 中的表格,并使用以下代码来查找和遮蔽带有“是”和“否”字样的单元格。我在第 3 列和第 4 列中专门使用什么代码来执行此操作?

Dim r As Range

Sub UBC()
    color "No", wdRed
    color "Yes", wdGreen
End Sub

    Function color(text As String, backgroundColor As WdColorIndex)
        Set r = ActiveDocument.Range
           With r.Find
           Do While .Execute(FindText:=text, MatchWholeWord:=True, Forward:=True) = True
        r.Cells(1).Shading.BackgroundPatternColorIndex = backgroundColor
           Loop
        End With
    End Function

【问题讨论】:

【参考方案1】:

您需要使用Range.Information 属性来确定匹配项是否在表中。然后,您将使用单元格的 ColumnIndex 属性来确定它是否在所需的列中。

Function color(text As String, backgroundColor As WdColorIndex)
   Dim r As Range
   Set r = ActiveDocument.Content
   With r.Find
      Do While .Execute(FindText:=text, MatchWholeWord:=True, Forward:=True) = True
         If r.Information(wdWithInTable) Then
            With r.Cells(1)
               If .ColumnIndex = 3 Or .ColumnIndex = 4 Then .Shading.BackgroundPatternColorIndex = backgroundColor
            End With
         End If
      Loop
   End With
End Function

【讨论】:

@JDavis - 请参阅What should I do when someone answers my question?

以上是关于搜索特定列后,如何使用 MS Word VBA 代码对具有特定文本的单元格进行着色?的主要内容,如果未能解决你的问题,请参考以下文章

MS Word,VBA,如何选择表格内单元格中的段落?

尝试将字符串从 MS Word 复制/粘贴到 MS Excel 时,Excel VBA 代码失败不一致

MS Access 2013:通过 VBA 使用 MS Word 的语法检查

使用 MS Access 和 VBA 更新 Ms Word 文档中的(字段代码:数据库)字段

[使用vba代码的ms Word文档文本翻译

Word VBA命令确定找到的字符是否在行尾