如果有人能帮我识别这段代码的问题,我真的很感激。每当在列A中插入“西班牙语”时,代码假设将列O变为红色。如果A2是“西班牙”,则O2变为红色。当我在A2中写“西班牙”时,下面的代码完成了这项工作。但是,如果我将“西班牙”从A2复制粘贴到A10,那么只有在O列中变为红色的单元格才会是单元格O2。
为什么O3到O10的单元也不会变红?我怎样才能做到这一点?必须赞赏。
Sub columnO(d As Long)
If Cells(d, "A") = "Spain" And Cells(d, "O") = "" Then
Cells(d, "O").Interior.Color = RGB(255, 0, 0)
Else
Cells(d, "O").Interior.Color = RGB(1000, 1000, 1000)
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A5:O10"), Target) Is Nothing Then
columnO Target.row
End If
作为替代方案,这可以通过使用条件格式在没有任何VBA的情况下完成。使用公式创建新的条件格式规则并应用于所需范围(在这种情况下为$ O $ 2:$ O $ 10):
=AND($A2="Spain",$O2="")
更改您的Change
事件以循环遍历Target
中的所有行
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
If Not Application.Intersect(Range("A5:O10"), Target) Is Nothing Then
For Each r In Application.Intersect(Range("A5:O10"), Target).Rows
columnO r.Row
Next
End If
End Sub