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