在D中输入新数据,但将其跟随到新位置时排序表

问题描述 投票:0回答:1

我有一个用于对excel表进行排序的基本代码,它工作良好:

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中输入数据时,在大表中查找条目很麻烦。对记录进行排序时,是否有可能将记录跟随到新位置?如果是,我该如何更正代码呢?

谢谢!

excel vba excel-2010
1个回答
0
投票

代替Worksheet_SelectionChange(),以下解决方案使用Worksheet_Change()。每次添加新值排序后,它将滚动到新添加的值。您可以根据自己的使用情况进行调整。

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

© www.soinside.com 2019 - 2024. All rights reserved.