在Excel中更新数据后对范围进行sorting

我在Excel中有一个表格,可以通过从网站上自动(或手动)更新。

我有另一个链接的表,我想每次数据更新时自动sorting。 任何方式来做到这一点?

在需要自动更新表格的工作表中,您可以添加类似下面的代码(伪代码) – 每次更改时都会对表格进行sorting。 请注意,如果频繁更新,速度可能会变慢。

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 

或者你可以做到这一点,这将是更好的performance是命名范围很大:

 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