我有一个电子表格 - 在其中一个标签上我有一个填充了名称的表格,它们与一组颜色编码的参数相关,并且它们具有不同的背景颜色。 我需要创建一个公式来改变那些" X"基于颜色到简单文本(例如 - 如果单元格有绿色背景和黑色" X",比我想称之为GB,如果单元格有黄色背景和蓝色" X" - YB等。)
请有人帮助我这个吗?
非常感谢。
更新:
我在这里找到了很多很好的参考,但我没有做对。我创建了两个名称范围 - 例如:
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(FontColor=0,I18="X"),"EPL",0)))))
如果我将公式放在单元格左侧的列中 - 它可以工作,如果在另一个标签上 - 它没有 - :(
答案 0 :(得分:1)
在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
结果:
您可以通过右键单击单元格并选择:
来获取内部颜色 Format Cells...->More Colors...->Custom (Tab)
如果有很多颜色可供使用,您可以设置一个"颜色表"保持代码简单,使您不必查找每种颜色。
只需将带有颜色和X的单元格复制到一个范围内,然后输入您想要的单元格。确保将下面的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
结果: