我來提供一個用VBA排序的方法:
當鼠標單擊B1:E1區域時,鼠標單擊哪一列標題行,就自動按照該列從大到小的順序排序。
方法:
1.按Alt+F11打開VBE,輸入以下代碼:
SubWorksheet_SelectionChange(ByValTargetAsRange)'選擇的單元格發生變化后就會觸發Worksheet的SelectionChange事件
DimiColumnAsInteger'聲明iColumn變量
IfTarget.Column<=5AndTarget.Row=1Then'如果列數<=5(即A到E列的區域),并且在第1行(即標題行,如果想點擊該列的任何一行都實現排序效果,那么可以把Target.Row=1去掉)
IfTarget.Column<>iColumnThen'如果鼠標點擊的列數不等于iColumn,那么將點擊數出賦值給iColumn
iColumn=Target.Column
EndIf
Range("A1:E9").CurrentRegion.SortKEY1:=Cells(1,iColumn),ORDER1:=xlDescending,_
Header:=xlYes'在區域A1:E9內,按鼠標單擊的第一行單元格降序排列
EndIf
EndSub
2.按下F5,或點擊VBE菜單欄的三角箭頭,運行宏,可以看到我們需要的效果了: