Excel工作表經(jīng)常會(huì)進(jìn)行排序操作,這也是對(duì)于提高表格實(shí)際反映數(shù)據(jù)集合的一個(gè)有效辦法。
通過VBA代碼實(shí)現(xiàn)某一字段排序,可以增加數(shù)據(jù)的可讀性和有序性。
比如實(shí)現(xiàn)成績(jī)的從低到高排序,資金金額的從高到低排序等等,排序結(jié)果可以對(duì)于我們的數(shù)據(jù)統(tǒng)計(jì)一目了然的目的。
本節(jié)通過一個(gè)實(shí)例來講解,如何用VBA代碼實(shí)現(xiàn)排序的方法。
同樣,要實(shí)現(xiàn)這樣的功能也是通過一個(gè)方法,這個(gè)方法是一個(gè)對(duì)象行使的方法,那么就需要認(rèn)識(shí)這個(gè)對(duì)象。
對(duì)象名:Sort
獲取方法:.Sort
排序:.Sort.Apply
也就是說,要通過Sort對(duì)象的Apply方法來實(shí)現(xiàn)排序。
當(dāng)然,這只是其一,過程當(dāng)中,還需要進(jìn)行一些排序條件的設(shè)置,設(shè)置的內(nèi)容為Sort對(duì)象屬性,具體屬性如下圖所示:
通過設(shè)置上圖屬性之后,執(zhí)行排序就會(huì)得到一個(gè)有序的數(shù)據(jù)表。
為實(shí)現(xiàn)這樣的過程excel復(fù)制工作表排序,我們?cè)O(shè)計(jì)了下面一個(gè)工作表,來進(jìn)行演示排序結(jié)果。
根據(jù)表內(nèi)容,將表頭字段放到一個(gè)列表框內(nèi)容,選擇列表名稱,然后單擊排序按鈕就會(huì)實(shí)現(xiàn)相應(yīng)字段的排序。
示例過程就是這樣,下面具體看一下代碼。
排序代碼
'排序
Sub ()
Dim xid, xR As Range, xAdd As
xid = Me.. '返回排列字段索引值
Set xR = .Range("B3:I3") '設(shè)置排序字段組
xAdd = VBA.Split(xR.Item(xid + 1)., "$")(1) '提取索引列字母
Dim As Range
Set = .Range("B3:I17")
With .Sort
..Clear '清除所有 對(duì)象
..Add Key:=Range(xAdd & "4:" & xAdd & "17"), :=, _
Order:=, :=
'新建 對(duì)象
. '設(shè)置排序區(qū)域
. = xlYes '指定第一行包含標(biāo)題信息
. = False '指定不區(qū)分大小寫
. = '指定中文排序方法
.Apply '執(zhí)行排序
End With
Set =
Set xR =
End Sub
整合排序過程如上代碼介紹,分別有相應(yīng)注釋。
比較不好理解的是,代碼中多出了一個(gè)對(duì)象方法:.Add
這是另一個(gè)對(duì)象,可以實(shí)現(xiàn)添加排序字段excel復(fù)制工作表排序,然后返回一個(gè)對(duì)象。
本節(jié)不再介紹此對(duì)象,其應(yīng)用方法將在下一節(jié)具體介紹。
要知道的是,很多對(duì)象的應(yīng)用并不是單獨(dú)一個(gè)對(duì)象就可以實(shí)現(xiàn)的,需要多個(gè)對(duì)象相互引用才可以實(shí)現(xiàn)。
本節(jié)主要明白一個(gè)Sort對(duì)象就可以實(shí)現(xiàn)學(xué)習(xí)目的。
重點(diǎn)是要對(duì)所有的屬性進(jìn)行一個(gè)認(rèn)真學(xué)習(xí),參考代碼注釋可以有效幫助理解。