一張圖教你用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 |