粘贴多次时颜色不显示

时间:2018-01-03 18:55:01

标签: excel vba excel-vba

如果有人能帮我识别这段代码的问题,我真的很感激。该代码假设每当"西班牙"时,将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

2 个答案:

答案 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