一張圖教你用VBA自定義排序
感謝@小小潘的更正~
唔…感覺自己有必要寫一寫
怎麼用VBA實現自定義排序
為什麼呢?
…
可能以後就知道了吧
P.S.文末有習題
餅乾說
一般,我們使用
Sort 對象
來實現自定義排序
或者,簡單的說
Sort 對象的功能
和
自定義排序的功能
是一樣一樣的
我們也可以再看一遍題圖
常用代碼塊
With ActiveSheet.Sortn .SortFields.Clearn .SortFields.Add _n Key:=[A1], _n SortOn:=xlSortOnValues, _n Order:=xlAscending, _n DataOption:=xlSortNormaln .SetRange [A1].CurrentRegionn .Header = xlYesn .MatchCase = Falsen .Orientation = xlTopToBottomn .SortMethod = xlPinYinn .ApplynEnd Withn
- 代碼詳解
WorkSheet.Sort 對象
設置自定義排序對象
.SortFields.Clear 清空排序條件
.SortFields.Clearn
.SortFields.Add 新增排序條件
.SortFields.Add(Key,SortOn,Order,CustomOrder,DataOption) n
參數說明
- Key 關鍵字_必選
:= [A1]n
能指定某一行/列即可
- SortOn 排序依據_可選
:= SortOnValues:按數值【默認值】n:= SortOnCellColor:按單元格顏色n:= SortOnFontColor:按字體顏色n:= SortOnIcon:按單元格圖標n
- Order 次序_可選
:= xlAscending:升序【默認值】n:= xlDescending:降序n
- CustomOrder 自定義序列_可選
:= "彙編,C,C++,Java及C#,VB,HTML"n
默認不啟用,但可以實現各種排序
- DataOption 文本格式的數字_可選
:= xlSortTextAsNumbers:視作數字【默認值】n:= xlSortNormal:視作文本n
.SetRange 排序範圍
.SetRange(Rng) n
應用於表格時,該方法無效會報錯序
參數說明
- Rng 範圍
:= [A1].CurrentRegionn
指定完整排序範圍
.Header 標題
= xlNo 沒有n= xlYes 有n= xlGuess 自己猜n
橫向排序時該屬性無效,均為 xlNo
.MatchCase 區分大小寫
= False 不區分n= True 區分n
.Orientation 排序方向
= xlTopToBottom 按列n= xlLeftToRight 按行n
.SortMethod 排序方法
= xlPinYin 按拼音n= xlStroke 按筆畫n
.Apply 應用排序
.Applyn
微習題
試一試
使用VBA根據自定義規則進行排序
放大看動圖
在我的公眾號
餅乾數數 CookieData
回復
Sort
下載習題答案
推薦閱讀:
※【VBA初學者教程】- 第一章 VBA入門知識:用快捷記號引用單元格
※【VBA初學者教程】- 第一章 VBA入門知識:A1樣式引用單元格(區域)
※Excel VBA 基礎(0)
TAG:MicrosoftExcel | VBA |