在 D 中输入新数据时排序 table,但按照此条目到新位置

Sort table when new data is entered in D, but follow this entry to new position

我有一个排序 excel table 的基本代码,它运行良好:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("C3", Range("C3").End(xlDown)).Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlYes
End Sub

但是,在C中输入数据时,在大table中查找条目很麻烦,请问排序时是否可以按照记录到新的位置?如果是,我该如何更正代码?

谢谢!

有多种方法可以做到这一点。其中之一如下所示。

以下解决方案使用 Worksheet_Change() 而不是 Worksheet_SelectionChange()。这个想法是存储新添加的值(以下假设您直接在 C 列中键入以添加新值。如果您在 D 列中有特定位置,请更改 if 条件以检查该位置的更改.) 然后排序后搜索。每增加一个新值,排序后会滚动到新增加的值。您可以根据自己的使用情况进行调整。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim val As Variant
    If Target.Column = 3 Then
        val = Target.Value

        Range("C3", Range("C3").End(xlDown)).Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlYes

        ActiveWindow.ScrollRow = Application.WorksheetFunction.Match(val, Range("C3", Range("C3").End(xlDown)), 0) + 2
    End If
End Sub