根据一组具有不同颜色的单元格更改单元格颜色

时间:2016-09-12 12:32:18

标签: excel vba excel-vba colors excel-formula

我有一个包含各种信息的电子表格,并且条件有条理。现在的问题是......我有4个单元格的范围,所有单元格都可以回复为绿色,如果符合所有条件,或者其中一个单元格我的回归为琥珀色,如果标准部分或未满足则为红色一点都不我想更改使用autosum的单元格的颜色,但是如果所有单元格都是绿色,则还要将其更改为绿色;如果一个或多个单元格显示为琥珀色,则为琥珀色;如果一个或多个单元格显示为红色,则为红色。但也可能有混合,所以一个细胞可能是绿色,一个是琥珀色,一个是红色。所以对细胞的价值不感兴趣,只对颜色感兴趣。然后我还想将数据(值和颜色)完全转移到另一张纸上。任何想法??

1 个答案:

答案 0 :(得分:0)

要回答问题的第一部分,下面是简单的代码,您需要根据自己的需要进行调整(更改范围,确保使用正确的颜色等)。

此外,如果您想为更大的范围集执行此操作,则需要使用以下方法循环此宏: For ... Next 或其他循环。

Sub interiorcolor()


Dim Range1, Range2, Range3, Range4 As Range

Set Range1 = Sheets("Sheet1").Range("A1")
Set Range2 = Sheets("Sheet1").Range("A2")
Set Range3 = Sheets("Sheet1").Range("A3")
Set Range4 = Sheets("Sheet1").Range("A4")


If Range1.Interior.ColorIndex = 3 Or Range2.Interior.ColorIndex = 3 Or Range3.Interior.ColorIndex = 3 Or Range4.Interior.ColorIndex = 3 Then

Sheets("Sheet1").Range("A5").Interior.ColorIndex = 3

ElseIf Range1.Interior.ColorIndex = 53 Or Range2.Interior.ColorIndex = 53 Or Range3.Interior.ColorIndex = 53 Or Range4.Interior.ColorIndex = 53 Then

Sheets("Sheet1").Range("A5").Interior.ColorIndex = 53

ElseIf Range1.Interior.ColorIndex = 43 And Range2.Interior.ColorIndex = 43 And Range3.Interior.ColorIndex = 43 And Range4.Interior.ColorIndex = 43 Then

Sheets("Sheet1").Range("A5").Interior.ColorIndex = 43

Else

Sheets("Sheet1").Range("A5").Interior.ColorIndex = 2

End If


End Sub