2017-05-25 64 views
0

我有代码来触发更改事件,将诉诸我的数据。该图表在列A-D中包含信息。该代码触发数据随时在列D中的值发生变化时采取行动。当我输入新数据时以及删除列D中某个单元格的内容时,这将起作用,但是,如果我在特定行的列AD中选择信息,然后点击删除,则用数据删除所有四个单元格的内容在该行中,该事件不会触发。为了做到这一点,我需要改变什么?代码是Excel工作表更改事件不会去多个单元格时删除

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

您使用:
If Target.Column = 4 Then

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

+0

这似乎已经做到了。谢谢! – toepel30

+0

我很高兴。你会将答案标记为已接受吗? – MrDogme

+0

@ toepel30问题似乎是**未答复**请接受这为**答案**,因为它解决了问题。 – Mertinc

相关问题