根据内容设置 table 单元格的颜色

Set the color of a table cell depending on the content

我正在尝试在 MS Word 2016 中编写 VBA 代码以填充包含特定字符串的单元格(在我的例子中是 "–")。我试过这样的事情:

Sub CellsColorFill()
    Dim tTable As Table
    Dim cCell As Cell

    For Each tTable In ActiveDocument.Range.Tables
        For Each cCell In tTable.Range.Cells
            If cCell.Range = "-" Then
                Selection.Shading.Texture = wdTextureNone
                Selection.Shading.ForegroundPatternColor = wdColorAutomatic
                Selection.Shading.BackgroundPatternColor = -603923969
            End If
        Next
    Next
    Set oCell = Nothing
    Set tTable = Nothing
End Sub

但是不知道为什么,执行的时候没有效果。这个任务怎么完成?

注意 - 最好在模块顶部使用 Option Explicit 以帮助您指出未声明的变量。 oCell 未声明,我认为这是 cCell

的拼写错误

要检查字符串是否包含某个字符串,可以使用InStr检查returns是否为非0值(0表示未找到)

Option Explicit

Sub CellsColorFill()
    Dim tTable As Table
    Dim cCell As Cell

    For Each tTable In ActiveDocument.Range.Tables
        For Each cCell In tTable.Range.Cells
            If InStr(cCell.Range.Text, "-") <> 0 Then
                cCell.Shading.Texture = wdTextureNone
                cCell.Shading.ForegroundPatternColor = wdColorAutomatic
                cCell.Shading.BackgroundPatternColor = -603923969
            End If
        Next
    Next
End Sub