excel-基于字体和背景颜色将单元格中的值放入

excel-基于字体和背景颜色将单元格中的值放入

问题描述:

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

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

非常感谢。


更新

我已经在这里发现了很多很好的参考,但我没有做正确的事情。我创建了2名ranges-如:

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))))) 

如果我把在列的公式在它的工作原理,如果在另一个标签 - 它不细胞的左边 - : (

+1

您是否尝试过这样做对你自己的?通常,本网站的人员不会为您编写整个程序/脚本 - 当您遇到特定问题时,我们随时为您提供帮助。 – 2014-09-25 15:03:45

+0

我有..我在这里找到很多很好的参考,但我没有做正确的事情。我已经创建了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(FONTCOLOR = 0,I18 = “X”), “EPL”,0)))))。如果我将公式放置在左侧的列中,它将起作用,如果在另一个制表符上,它不会 – Tatiana 2014-09-25 15:16:03

+0

颜色是如何设置的,是条件格式还是普通旧填充? – sous2817 2014-09-25 15:50:30

在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 

结果:

Results

你可以对细胞和选择室内色彩通过右键点击:

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

Colors2

Colors3

如果有很多的颜色一起工作,你可以设置一个“颜色表”保持简单的代码,并避免你不必查看每种颜色。

只需将颜色和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 

Colors4

结果:

Colors5