2017-05-25 69 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

相關問題