当前位置: 代码迷 >> VBA >> 怎么根据单元格颜色设置另一个单元格的值
  详细解决方案

怎么根据单元格颜色设置另一个单元格的值

热度:2942   发布时间:2013-02-26 00:00:00.0
如何根据单元格颜色设置另一个单元格的值
如下图所示,如果右边的单元格“内容1~3”中有一个是红色的,左边的“结果”value就是F,一个红色单元格都没有的“结果”是T。
如果能在excel上直接设置就最好不过了。

请大侠指点一二!

------解决方案--------------------------------------------------------
Sub 宏1()
Dim i As Long
'通过下面的语句获取你目前EXCEL中红颜色的值
'Sheets("Sheet1").Cells(1, 5) = Sheets("Sheet1").Cells(1, 2).Interior.ColorIndex

For i = 2 To 65535
For j = 2 To 4
If Sheets("Sheet1").Cells(i, j).Interior.ColorIndex = 3 Then
Sheets("Sheet1").Cells(i, 1) = "F"
End If
Next j
Next i
End Sub
------解决方案--------------------------------------------------------
修改了一下


Sub 宏1()
Dim i As Long
'通过下面的语句获取你目前EXCEL中红颜色的值
'Sheets("Sheet1").Cells(1, 5) = Sheets("Sheet1").Cells(1, 2).Interior.ColorIndex
Dim HasRedcell As Boolean
HasRedcell = False

For i = 2 To 65535
For j = 2 To 4
If Sheets("Sheet1").Cells(i, j).Interior.ColorIndex = 3 Then
HasRedcell = True
Exit For
End If
Next j
If HasRedcell = True Then
Sheets("Sheet1").Cells(i, 1) = "F"
Else
Sheets("Sheet1").Cells(i, 1) = "T"
End If
HasRedcell = False
Next i
End Sub

------解决方案--------------------------------------------------------
If Sheets("Sheet1").Cells(i, j).Interior.ColorIndex = 3 Then

改成

If Sheets("Sheet1").Cells(i, j).FormatConditions(1).Interior.ColorIndex = 3 then

试试。
------解决方案--------------------------------------------------------
FormatConditions(1)
这个指的是条件格式里的第一个条件。

FormatConditions(2)
这个指的是条件格式里的第二个条件。

所以如果取白色应该是
Sheets("Sheet1").Cells(i, j).FormatConditions(2).Interior.ColorIndex 
  相关解决方案