Есть несколько способов сделать это. Один из них представлен ниже.
Вместо Worksheet_SelectionChange()
в следующем решении используется Worksheet_Change()
. Идея состоит в том, чтобы сохранить новое добавленное значение (далее предполагается, что u набрал в столбце C непосредственно, чтобы добавить новое значение. Если у вас есть указанное 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