所以我在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
答案 0 :(得分:1)
为什么不进行条件格式化?如果您仍想使用VBA进行操作,请继续阅读......
你的代码没有按预期工作,但有些单元格被跳过,很可能是因为单元格中有空格或大小写(UPPER / LOWER / MIXED)不同。
我就是这样做的。 (的 UNTESTED 强>)
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
如果您想部分检查单元格中的字符串,请使用INSTR
与vbTextCompare
答案 1 :(得分:0)
如果有些正确着色而有些则没有,那么它告诉我某些单元格与您要查找的文本不匹配。在没有着色的单元格中是否隐藏了空白?
我还会在case else
末尾添加一个msgbox
或类似的内容,以便在某些内容与您的某个案例不符时提醒您。然后,您将有一个特定的实例进行调查。最后总是很重要。