Excel公式根据单元格颜色指定值

时间:2015-07-17 17:45:36

标签: excel vba excel-vba if-statement excel-formula

我需要根据我的细胞颜色(红色或蓝色)指定值1或0。我已经听过很多关于如何为颜色分配颜色而不是其他方式的颜色。我是初学者,但我相信我需要在VBA中使用IF语句,我还没想出如何将颜色指定为IF语句的输入。任何帮助将不胜感激!

谢谢

Excel 2013

1 个答案:

答案 0 :(得分:1)

在接下来的第一个例子中,我假设您希望蓝色单元格等于1,红色单元格等于0。

Sub ifBlueMakeCellValueEQ1()
    Dim r      As Range
    Dim rCell  As Range

    Set r = Selection.Cells

    For Each rCell In r
        With rCell
            Select Case .Interior.Color
                Case Is = vbBlue
                    .Value = 1
                Case Is = vbRed
                    .Value = 0
            End Select
        End With
    Next

End Sub

要使用它,首先选择一系列单元格然后运行宏。

如果可行,则忽略此答案的其余部分

如果您的单元格的值不能更改为1或0,则表示您的单元格的颜色不等于excel的蓝色和红色(vbBlue和vbRed,分别)。

如果您遇到此问题,请执行以下操作:点击蓝色'细胞。转到VBE立即窗口,输入命令"?activecell.interior.colorindex",点击回车。返回的整数应在以下代码中使用,以代替{BLUECOLORINDEX}

Sub ifBlueMakeCellValueEQ1()
    Dim r      As Range
    Dim rCell  As Range

    Set r = Selection.Cells

    For Each rCell In r
        If rCell.Interior.ColorIndex = {BLUECOLORINDEX} Then rCell.Value = 1
    Next

End Sub