宏突出显示单元格中的变化,范围不断变化

时间:2018-08-28 22:50:48

标签: excel vba excel-vba

我写了以下宏,以突出显示特定范围内的任何变化:

Private Sub Worksheet_Change(ByVal Target As Range)
' Tracking Changes In Yellow
    Dim KeyCells As Range
    Set KeyCells = Range("L12", Range("L12").End(xlDown))
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
           Target.Interior.ColorIndex = 6
    End If

该宏运行得很好,除了我在图表区域以外的单元格中输入新值时(我无法使用该值),这是由于我使用范围Range("L12", Range("L12").End(xlDown)导致的问题。

如您在图片中看到的,如果我在其下输入一个新值,由于End(xlDown),它将以黄色突出显示,但是如果我在两个单元格之外都将其突出显示则不会。解决此问题的最佳方法是什么?

enter image description here

1 个答案:

答案 0 :(得分:0)

这取决于您的需要。如果它将始终位于J列中,则:

Private Sub Worksheet_Change(ByVal Target As Range)
' Tracking Changes In Yellow
    Dim KeyCells As Range
    Set KeyCells = Range("L12", Range("L" & Rows.Count))
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
           Target.Interior.ColorIndex = 6
    End If
End Sub