![自动排序 Microsoft Excel 工作表](https://linux22.com/image/1254698/%E8%87%AA%E5%8A%A8%E6%8E%92%E5%BA%8F%20Microsoft%20Excel%20%E5%B7%A5%E4%BD%9C%E8%A1%A8.png)
我可以配置(可能使用脚本)Excel 以便每次更新条目时自动重新排列表格吗?
答案1
通过谷歌搜索,我得到了以下信息:
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 可以对某些范围进行排序,并且也可以适应您自己的数据范围。只需删除不需要的行并更改工作表编号和数据范围即可。