自动排序 Microsoft Excel 工作表

自动排序 Microsoft Excel 工作表

我可以配置(可能使用脚本)Excel 以便每次更新条目时自动重新排列表格吗?

答案1

通过谷歌搜索,我得到了以下信息:

http://www.techsupportforum.com/microsoft-support/microsoft-office-support/252123-can-someone-help-me-auto-sort-excel.html#post1499027

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not (Application.Intersect(Worksheets(1).Range("E9:F32"), Target) Is Nothing) Then
        DoSort
    End If
End Sub

Private Sub DoSort()
    Worksheets(3).Range("E3:M7").Sort Key1:=Worksheets(3).Range("M3"), Order1:=xlDescending, _
        Key2:=Worksheets(3).Range("L3"), Order2:=xlDescending, Header:=xlYes
    Worksheets(3).Range("E10:M14").Sort Key1:=Worksheets(3).Range("M10"), Order1:=xlDescending, _
        Key2:=Worksheets(3).Range("L10"), Order2:=xlDescending, Header:=xlYes
    Worksheets(3).Range("E17:M21").Sort Key1:=Worksheets(3).Range("M17"), Order1:=xlDescending, _
        Key2:=Worksheets(3).Range("L17"), Order2:=xlDescending, Header:=xlYes
    Worksheets(3).Range("E24:M28").Sort Key1:=Worksheets(3).Range("M24"), Order1:=xlDescending, _
        Key2:=Worksheets(3).Range("L24"), Order2:=xlDescending, Header:=xlYes
End Sub

我对 VBA 了解不多,但我会尝试解释如何自定义它,如果失败了,请告诉我。;)

使用第一个子程序,您可以定义何时触发函数。上面的行表示当工作表 1 中的单元格 E9 至 F32 发生任何更改时启动 DoSort。

DoSort 可以对某些范围进行排序,并且也可以适应您自己的数据范围。只需删除不需要的行并更改工作表编号和数据范围即可。

相关内容