Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("g2:g10000")) Is Nothing Then Exit Sub
'suite ok
ActiveWorkbook.Worksheets("Plan").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Plan").AutoFilter.Sort.SortFields.Add _
Key:=Range("G1:G10000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Plan").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Range("$A$1:$H$10000").AutoFilter Field:=7
ActiveSheet.Range("$A$1:$H$10000").AutoFilter Field:=7, Operator:= _
xlFilterValues, Criteria2:=Array(0, "9/1/2018")
End Sub