Excel VBA基于值改变单元格颜色

时间:2013-10-11 03:52:13

标签: excel vba colors

如果单元格的值等于另一个单元格的值,我需要一些可以改变单元格颜色的函数的帮助,目前单元格保持= COUNT(##:##)和I如果该值等于另一个单元格中的值,则需要将颜色从红色更改为绿色。

由于我对VBA和excel的了解有限,我想出了这个

Function ChangeColor(CellColor As Range)
Application.Volatile True
If CellColor = cell.Value Then ChangeColor = cell.Interior.ColorIndex = 14
End Function

如果可能的话,我宁愿不使用条件格式,但如果需要的话,我愿意接受它作为最后的手段。感谢您的帮助,并帮助我解决以前的问题,这个社区很棒。

2 个答案:

答案 0 :(得分:1)

我在下面的代码中突出显示了列中相同的单元格。条件格式不允许我级联“等于上面的单元格”的公式,也许我只是没有做到这一点。无论如何,这很有用,很容易改变并添加到它。可以轻松更改此示例以适合您的问题。

Sub checkduplicates()
Dim Loop1 As Integer
Dim Loop1StartRow As Integer
Dim Loop1EndRow As Integer
Dim Loop1Count As Integer
Dim Current As Integer
Dim NextOne As Integer

Loop1StartRow = 4 '4 HYIDAS
Loop1EndRow = 330 '330 HYIDAS
Loop1Count = 0

For Loop1 = Loop1StartRow To Loop1EndRow
    Worksheets("HYIDAS").Activate
    Loop1Count = Loop1Count + 1
    Current = Range("H" & Loop1)
    NextOne = Range("H" & Loop1 + 1)
    If Current = NextOne Then
        Range("H" & Loop1).Interior.Color = 220
        Range("H" & Loop1 + 1).Interior.Color = 220
    End If
Next Loop1
End Sub

答案 1 :(得分:0)

我认为你只是使用条件格式我知道功能无法改变颜色或你使用宏

If CellColor = Selection.Value Then CellColor.Interior.ColorIndex = 14

我很抱歉,我知道