В листе, где находится таблица, которая должна автоматически обновляться, вы можете добавить что-то вроде приведенного ниже кода (псевдокод) - он будет сортировать таблицу каждый раз, когда изменяется.Обратите внимание, что это может стать медленным, если вы получаете частые обновления.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target is in the table (you can check Target.Row and Target.Column for example) Then
Sort the table
End If
End Sub
Если диапазон является именованным диапазоном с именем named_range, вы можете сделать это, например (не очень эффективно, но читабельно):
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In [named_range]
If c = Target Then MsgBox "OK"
Next c
End Sub
Или вы можете сделать это, что будет лучше, если названный диапазон велик:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim row_start As Long
Dim row_end As Long
Dim col_start As Long
Dim col_end As Long
row_start = [named_range].Cells(1, 1).Row
col_start = [named_range].Cells(1, 1).Column
row_end = row_start + [named_range].Rows.Count - 1
col_end = col_start + [named_range].Columns.Count - 1
If Target.Row >= row_start And Target.Row <= row_end And Target.Column >= col_start And Target.Column <= col_end Then
MsgBox "In range"
End If
End Sub