删除多个单元格时,Excel工作表更改事件不会发生

时间:2017-05-25 20:33:21

标签: excel events triggers worksheet

我有代码来触发更改事件,该事件将使用我的数据。该图表包含A-D列中的信息。只要D列中的值发生变化,代码就会触发数据。当我输入新数据以及删除列D中单元格的内容时,这是有效的,但是,如果我选择某行的列AD中的信息然后点击删除,则删除所有四个单元格的内容在该行中,事件不会触发。为了实现这一目标,我需要做些什么改变?代码是

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
    Application.EnableEvents = False
Range(Cells(1, 1), Cells(90, 1)).Select
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=Range(Cells(2, 1), Cells(90, 1)) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet2").Sort
        .SetRange Range(Cells(1, 1), Cells(90, 4))
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("E4").Select
Application.EnableEvents = True
End If
End Sub

1 个答案:

答案 0 :(得分:1)

你用过:
If Target.Column = 4 Then

尝试使用:
If Not Intersect(Target, Range("D:D")) Is Nothing Then