excel-根据字体和背景颜色将值放入单元格中

我有一个电子表格 – 在其中一个选项卡上,我有一个填充名称的表格,它们与颜色编码的一堆参数以及它们具有不同的背景颜色相关。 我需要创build一个公式,将基于颜色的这些“X”更改为简单文本(例如,如果单元格具有绿色背景和黑色“X”,比我想称为GB,如果单元格具有黄色背景和蓝色“ X“ – YB等)

任何人都可以,请帮助我这个?

非常感谢你。


更新

我在这里find了很多很好的参考,但是我没有做正确的事情。 我创build了2个名称范围,例如:

CellColor=GET.CELL(63,OFFSET(INDIRECT("RC",FALSE),0,-1)) FontColor=GET.CELL(24,OFFSET(INDIRECT("RC",FALSE),0,-1)) 

我已经算出了字体和背景颜色的数字。 但是当我放置公式时,它并没有给我正确的价值:

 =IF(AND(FontColor=3,I18="X"),"EXR",(IF(AND(FontColor=23,I18="X"),"BU",(IF(AND(Fo‌ntColor=0,I18="X"),"EPL",0))))) 

如果我把公式放在单元格左边的列中,它会起作用,如果在另一个表格上,它不会 – (

在VBA中:

 Sub SetValueBasedOnColors() Dim c As Range For Each c In Range("A2:A10") If c.Interior.Color = RGB(196, 215, 155) And c.Font.Color = RGB(0, 0, 0) Then c.Value = "GB" ElseIf c.Interior.Color = RGB(255, 255, 0) And c.Font.Color = RGB(31, 73, 125) Then c.Value = "YB" End If Next c End Sub 

结果:

结果

你可以通过右键单击单元格并select:

Format Cells...->More Colors...->Custom (Tab)

Colors2

Colors3

如果有很多颜色可以使用,您可以设置一个“颜色表”来保持代码简单,并免除查看每种颜色。

只需将颜色和X的单元格复制到一个范围内,然后input您希望的内容即可。 确保将ColorTable范围更改为表格的正确范围。

 Sub SetValueBasedOnColors() Dim ColorTable As Range Set ColorTable = Range("D2:D3") 'Point this range to your color table Dim c As Range Dim z As Range For Each c In Range("A2:A10") 'Point this range to your data For Each z In ColorTable If c.Interior.Color = z.Interior.Color And c.Font.Color = z.Font.Color Then c.Value = z.Value End If Next z Next c End Sub 

Colors4

结果:

Colors5