如果有人能帮我识别这段代码的问题,我真的很感激。该代码假设每当"西班牙"时,将O列变为红色。插入A列。如果A2是"西班牙"然后O2变成红色。当我写作#34;西班牙"以下代码完成这项工作。在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
答案 0 :(得分:4)
作为替代方案,可以通过使用条件格式在没有任何VBA的情况下完成。使用公式创建新的条件格式规则并应用于所需范围(在这种情况下为$ O $ 2:$ O $ 10):
=AND($A2="Spain",$O2="")
答案 1 :(得分:2)
更改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