0

所以我在excel中有一个不同名称的表。我正在尝试解析表格并根据每个单元格中的名称更改单元格背景颜色。我尝试使用开关控件,但它对我不起作用,因为某些名称被跳过了。所以我得到了它,一些单元格正确着色,而一些单元格根本没有着色。这是代码

Sub selectAll()
    Sheets("Assignments").Activate
    Dim cell As Range
    For Each cell In Range("D7:X48")
        Select Case cell.Text
            ct Case cell.Text
            Case "John H."
                cell.Interior.ColorIndex = 6
            Case "Eve J."
                cell.Interior.ColorIndex = 4
            Case "Sam M."
                cell.Interior.ColorIndex = 46
            Case "Jeremy E."
                cell.Interior.ColorIndex = 46
        End Select
    Next
End Sub
4

2 回答 2

1

为什么不是条件格式?如果你仍然想用 VBA 来做,那么请继续阅读......

您的代码没有按预期工作,即某些单元格被跳过,很可能是因为单元格中有空格或大小写(UPPER/LOWER/MIXED)不同。

我就是这样做的。(未经测试

Sub selectAll()
    Dim cell As Range

    With Sheets("Assignments")
        For Each cell In .Range("D7:X48")
            Select Case UCase(Trim(cell.Value))
                Case "JOHN H.": cell.Interior.ColorIndex = 6
                Case "EVE J.": cell.Interior.ColorIndex = 4
                Case "SAM M.", "JEREMEY E.": cell.Interior.ColorIndex = 46
            End Select
        Next
    End With
End Sub

如果要部分检查单元格中的字符串,请使用INSTRwithvbTextCompare

于 2014-10-03T05:49:07.840 回答
0

如果有些颜色正确而有些颜色不正确,则表明某些单元格与您要查找的文本不匹配。未着色的单元格中是否有隐藏的空白?

我还会在case else它的末尾加上 amsgbox或类似的内容,以提醒您何时某些内容与您的案例不匹配。然后,您将有一个特定的实例进行调查。最后抓住一切总是很重要的。

于 2014-10-03T01:54:54.700 回答