首页 > 解决方案 > 自动排序 - 停止返回表格顶部

问题描述

我正在使用下面的代码,一旦我在“关联”列中选择某人,表格就会自动对数据进行排序。

它把我带回了桌子的顶端。

我必须向下滚动。

我想留在我刚刚完成的那一行。

Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.Sheets("Log").ListObjects("Table1").Sort.SortFields.Clear
ThisWorkbook.Sheets("Log").ListObjects("Table1").Sort.SortFields. _
    Add Key:=Range("Table1[[#ALL],[Date]]"), SortOn:=xlSortOnValues, Order _
    :=xlAscending, DataOption:=xlSortNormal
ThisWorkbook.Sheets("Log").ListObjects("Table1").Sort.SortFields. _
    Add Key:=Range("Table1[[#All],[Time]]"), SortOn:=xlSortOnValues, Order _
    :=xlAscending, DataOption:=xlSortNormal
If Not Intersect(Target, Range("Table1[[#All],[Associate]]")) Is Nothing Then
    With ThisWorkbook.Sheets("Log").ListObjects("Table1").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End If
End Sub

标签: excelvba

解决方案


也许就像添加一个 final 一样简单Target.Activate


推荐阅读