Sub test()
If Range(Cells(5, 1), Cells(5, 10)).Interior.ColorIndex = 1 Then
MsgBox "TRUE"
Else
MsgBox "FALSE"
End If
End Sub
但是我当然不希望手动更改细胞填充。我正在使用VBA代码,在满足某些条件时更改其ColorIndex。使用VBA代码将整个范围更改为ColorIndex = 1后,以下代码返回FALSE。
Sub testt()
If Range(Cells(5, 1), Cells(5, 10)).Interior.ColorIndex = 1 Then
MsgBox "TRUE"
Else
MsgBox "FALSE"
End If
Dim i As Integer
For i = 1 To 10
MsgBox Cells(5, i).Interior.ColorIndex & " Cell no " & i
Next i
End Sub
检查此范围内的每个单元格是否具有相同的ColorIndex I循环。每个单元格都有ColorIndex = 1。但是整个范围看起来不是 - 因为它返回FALSE。只有当我用VBA改变单元格的颜色时才会发生这种情况,当我这样做时,一切都运行得很好。
我知道我没有提供太多细节,但也许有人在这里有类似问题。很抱歉,如果这个问题太过琐碎,但我真的没有找到任何合理的解释。
答案 0 :(得分:0)
我写了下面的代码,它运行得很好:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckColor
End Sub
Sub CheckColor()
Dim sh As Worksheet
Set sh = ActiveSheet
If Range(Cells(5, 1), Cells(5, 10)).Interior.ColorIndex = 1 Then
sh.Range("A1") = "True"
Else
sh.Range("A1") = "False"
End If
End Sub
Sub SetColor()
Dim sh As Worksheet
Dim rn As Range
Dim cl As Range
Set sh = ActiveSheet
Set rn = sh.Range("A5:J5")
For Each cl In rn
cl.Interior.ColorIndex = 1
Next
CheckColor
End Sub