2016-09-12 224 views
0

我有一个包含各种信息并严格有条件格式化的电子表格。现在的问题是.....我有一个4格的范围,如果满足所有条件,或者其中一个单元格恢复为琥珀色,则所有单元格都可以恢复为绿色;如果条件部分达到或未达到,则所有单元格都会恢复为绿色在所有。我想更改使用autosum的单元格的颜色,但如果所有单元格均为绿色,也希望将其更改为绿色,如果一个或多个单元格显示琥珀色,则将其更改为琥珀色;如果一个或多个单元格显示为红色,则需要将其更改为红色。但也可能有混合,所以一个细胞可能是绿色,琥珀色和红色。所以对细胞的价值不感兴趣,只是颜色。然后我也想将数据(颜色值&)转移到不同的表格中。有任何想法吗??基于一组不同颜色的单元格更改单元格颜色

+5

若要更改单元格颜色[转到这里](http://stackoverflow.com/questions/520570/return-background-color-of-selected-cell)。使用VBA复制和粘贴[去这里](https://www.excelcampus.com/vba/copy-paste-cells-vba-macros/)。要引用不同的工作表[去这里](http://www.quepublishing.com/articles/article.aspx?p=2021718&seqNum=5)。要学习如何在StackOverflow上提出一个好问题[go here](http://stackoverflow.com/help/how-to-ask)。我搜索了你的问题,这是第一个弹出的链接。除了复制面食之外,还有其他方法。试试看,如果它不起作用,我们会帮助解决它。 – Tyeler

回答

0

要回答你的问题的第一部分,下面是简单的代码,你将需要调整您的需求(变化范围,确保您使用正确的颜色等)

此外,如果你想为更大的范围集执行它,您将需要循环使用此宏:对于...下一个或其他循环。

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