Сортировать диапазон после обновления данных в Excel - PullRequest
1 голос
/ 09 марта 2012

У меня есть таблица в Excel, которая обновляется автоматически (или вручную) путем извлечения информации с веб-сайта.

У меня есть другая таблица, которая связана, и я хочу автоматически сортировать ее каждый раз, когда обновляются данные.Есть ли способ сделать это?

1 Ответ

2 голосов
/ 09 марта 2012

В листе, где находится таблица, которая должна автоматически обновляться, вы можете добавить что-то вроде приведенного ниже кода (псевдокод) - он будет сортировать таблицу каждый раз, когда изменяется.Обратите внимание, что это может стать медленным, если вы получаете частые обновления.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...