如何根据单元格内容使用 RGB 颜色将条件格式应用于 Word 单元格

How to apply conditional formatting to Word cells using RGB colours based on cell contents

我有大约 100 个大型 Word 文档,大约有每张50张桌子。我正在尝试找到一种快速格式化它们的方法(使用 VBA),这样我就不必手动为每个单元格着色。

我需要根据内容使用特定的 RGB 颜色为单元格着色。例如:"Very good"或"Minor"的单元格需要填写RGB 112,173,71。 "Good" 或 "Moderate" 的单元格需要为 RGB 169,208,142。

Table example

我有大约 10 个不同的单词组合需要着色。

我查了一些条件格式问题,但大多数似乎是根据 numeric/integer 值而不是文本为单元格着色。

任何帮助都会很棒。

这段代码应该可以让你开始。您可以为不同的单词组合添加额外的 Case 语句并调整 RGB 值:

Dim objTable As Table
Dim iRowCounter As Integer
Dim iColumnCounter As Integer

Dim lngVeryGoodColor As Long
Dim lngGoodColor As Long

' Predefine colors
lngVeryGoodColor = RGB(112, 173, 71)
lngGoodColor = RGB(169, 208, 142)

' Loop through all tables in document
For Each objTable In ThisDocument.Tables

    For iRowCounter = 1 To objTable.Rows.Count

        For iColumnCounter = 1 To objTable.Columns.Count

            ' Get Table cell
            With objTable.Cell(iRowCounter, iColumnCounter)

                If InStr(.Range.Text, "Good") > 0 Then .Shading.BackgroundPatternColor = lngGoodColor
                If InStr(.Range.Text, "Moderate") > 0 Then .Shading.BackgroundPatternColor = lngGoodColor
                If InStr(.Range.Text, "Very good") > 0 Then .Shading.BackgroundPatternColor = lngVeryGoodColor
                If InStr(.Range.Text, "Minor") > 0 Then .Shading.BackgroundPatternColor = lngGoodColor

            End With

        Next

    Next

Next