- Excel VBA范例大全
- 羅剛君編著
- 2096字
- 2018-12-29 15:15:34
第4部分 排序
當(dāng)工作表中存有大量數(shù)據(jù)時,為了便于觀察,往往需要對數(shù)據(jù)按照一定的標(biāo)準(zhǔn)進(jìn)行排序,包括漢字筆畫順序、漢字拼音順序、數(shù)值大小順序、單元格字體顏色順序及單元格背景色順序等。
按顏色和圖標(biāo)排序是Excel 2007新增功能,若保存為Excel 2003及以前版本的兼容格式,將無法正常再對其順序做相應(yīng)修改。
本部分主要知識點:
● 對數(shù)字和文本排序
● 按顏色排序
● 多條件排序
第16章 對數(shù)字和文本排序
對數(shù)字排序一般按其值的大小以升序或者降序排列;對文本排序則可以筆畫和拼音順序進(jìn)行排序。本章通過5個實例對數(shù)字和文本排序的技巧進(jìn)行講解。
● 實例118對選區(qū)數(shù)字以升序排序
● 實例119對選區(qū)文本以字母順序升序排序
● 實例120對選區(qū)文本以筆畫順序降序排序
● 實例121對選區(qū)數(shù)據(jù)按拼音排序并區(qū)分大小寫
● 實例122對選區(qū)數(shù)據(jù)按筆畫排序并區(qū)分大小寫
實例118 對選區(qū)數(shù)字以升序排序
【技巧說明】 對選區(qū)數(shù)字以升序排序。
【案例介紹】 將選區(qū)數(shù)字按從小到大的順序重新排序,但標(biāo)題不參與排序。初始數(shù)據(jù)如圖4.1所示。
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進(jìn)入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub對選區(qū)數(shù)值以升序排序且有標(biāo)題() With ActiveWorkbook.ActiveSheet.Sort .SortFields.Clear '清除原排序信息 .SortFields.Add Key:=ActiveCell, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Application.Intersect(Selection, Selection.Offset(1, 0))'區(qū)域 .Apply End With End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 選中A1∶A11單元格,用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,選區(qū)數(shù)據(jù)立即按升序排序,而首行標(biāo)題不參與排序,結(jié)果如圖4.2所示。

圖4.1 待排序的原始數(shù)據(jù)

圖4.2 已將數(shù)字按升序排列
提示
本實例參見光盤樣本:..\第4部分\實例118.xlsm。
【相關(guān)知識說明】
(1)Sort:對值區(qū)域進(jìn)行排序。語法如下(各參數(shù)含義見表4.1):
range.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)
表4.1 Sort參數(shù)列表

(2)Sort.SetRange:設(shè)置排序?qū)ο蟮膮^(qū)域。這個參數(shù)重別重要,調(diào)整區(qū)域可以決定排序區(qū)域中的首行是否參與排序。本例以Intersect(Selection, Selection.Offset(1, 0))方法排除選區(qū)的首行,使之成為標(biāo)題不參與排序;若要參與排序則直接改為Selection即可。
實例119 對選區(qū)文本以字母順序升序排序
【技巧說明】 對選區(qū)文本以字母順序升序排序。
【案例介紹】 將選區(qū)字母按字母順序升序重新排序,但標(biāo)題不參與排序。初始數(shù)據(jù)如圖4.3所示。
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進(jìn)入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub對選區(qū)文本以字母順序升序排序且有標(biāo)題() With ActiveWorkbook.ActiveSheet.Sort .SortFields.Clear '清除原排序信息 'Order:=xlAscending表示升序,Order:=xlDescending表示降序 .SortFields.Add Key:=ActiveCell, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Application.Intersect(Selection, Selection.Offset(1, 0))'區(qū)域 .SortMethod=xlPinYin '中文排序方式為以拼音為基準(zhǔn) .Apply End With End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 選中A1∶A13單元格,用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,選區(qū)字母立即按升序排序,而首行標(biāo)題不參與排序,結(jié)果如圖4.4所示。

圖4.3 待排序的原始數(shù)據(jù)

圖4.4 已將字母按升序排列
提示
本實例參見光盤樣本:..\第4部分\實例119.xlsm。
【相關(guān)知識說明】
SortMethod=xlPinYin:表示排序方式是按拼音順序排列。
實例120 對選區(qū)文本以筆畫順序降序排序
【技巧說明】 對選區(qū)文本以筆畫順序降序排序。
【案例介紹】 將選區(qū)文本按筆畫順序從多到少重新排序,但標(biāo)題不參與排序。初始數(shù)據(jù)如圖4.5所示。
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進(jìn)入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub對選區(qū)文本以筆畫順序降序排序且有標(biāo)題() With ActiveWorkbook.ActiveSheet.Sort .SortFields.Clear '清除原排序信息 .SortFields.Add Key:=ActiveCell, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal .SetRange Application.Intersect(Selection, Selection.Offset(1, 0)) .SortMethod=xlStroke '中文排序方式以筆畫為基準(zhǔn) .Apply End With End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 選中A1∶A11單元格,用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,選區(qū)文本立即按升序排序,而首行標(biāo)題不參與排序,結(jié)果如圖4.6所示。

圖4.5 待排序的原始數(shù)據(jù)

圖4.6 已將文本按降序排列
提示
本實例參見光盤樣本:..\第4部分\實例120.xlsm。
【相關(guān)知識說明】
SortMethod=xlStroke:表示排序方式是按筆畫順序排列。
實例121 對選區(qū)數(shù)據(jù)按拼音排序并區(qū)分大小寫
【技巧說明】 對選區(qū)數(shù)據(jù)按拼音排序并區(qū)分大小寫。
【案例介紹】 將選區(qū)文本按拼音順序重新排序并區(qū)分大小寫,但標(biāo)題不參與排序。初始數(shù)據(jù)如圖4.7所示。
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進(jìn)入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub對選區(qū)文本分大小寫按拼音順序排序() With ActiveWorkbook.ActiveSheet.Sort .SortFields.Clear '清除原排序信息 .SortFields.Add Key:=ActiveCell, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Application.Intersect(Selection, Selection.Offset(1, 0))'區(qū)域 .MatchCase=True '區(qū)分大小寫 .SortMethod=xlPinYin '按拼音排序 .Apply End With End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 選中A1∶A13單元格,用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,選區(qū)字母立即按升序排序,而首行標(biāo)題不參與排序,結(jié)果如圖4.8所示。

圖4.7 待排序的原始數(shù)據(jù)

圖4.8 已將數(shù)據(jù)按拼音順序排序且區(qū)分大小寫
提示
本實例參見光盤樣本:..\第4部分\實例121.xlsm。
【相關(guān)知識說明】
MatchCase:如果設(shè)置為True,則執(zhí)行區(qū)分大小寫的排序;如果設(shè)置為False,則執(zhí)行不區(qū)分大小寫的排序。可讀/寫。
實例122 對選區(qū)數(shù)據(jù)按筆畫排序并區(qū)分大小寫
【技巧說明】 對選區(qū)數(shù)據(jù)按筆畫排序并區(qū)分大小寫。
【案例介紹】 將選區(qū)文本按筆畫順序從少到多重新排序,對其中字母區(qū)分大小寫,標(biāo)題不參與排序。初始數(shù)據(jù)如圖4.9所示。
【案例實現(xiàn)】 參見以下步驟:
[1] 使用快捷鍵Alt+F11進(jìn)入VBE(Visual Basic Editor)環(huán)境。
[2] 單擊菜單【插入】\【模塊】,打開模塊代碼窗口。
[3] 在右邊代碼窗口輸入以下代碼:
Sub對選區(qū)文本分大小寫排序() With ActiveWorkbook.ActiveSheet.Sort .SortFields.Clear '清除原排序信息 .SortFields.Add Key:=ActiveCell, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Application.Intersect(Selection, Selection.Offset(1, 0))'區(qū)域 .MatchCase=True '區(qū)分大小寫 .SortMethod=xlStroke '按筆畫排序 .Apply End With End Sub
[4] 關(guān)閉VBE窗口返回到工作表。
[5] 選中A1∶A13單元格,用快捷鍵Alt+F8調(diào)出運行宏窗口,然后單擊“執(zhí)行”按鈕,選區(qū)數(shù)據(jù)立即按升序排序,而首行標(biāo)題不參與排序,結(jié)果如圖4.10所示。

圖4.9 待排序的原始數(shù)據(jù)

圖4.10 已將數(shù)據(jù)按筆畫排序并區(qū)分大小寫
提示
本實例參見光盤樣本:..\第4部分\實例122.xlsm。
- Word/Excel/PPT 2007辦公應(yīng)用從入門到精通
- 商務(wù)PPT視覺設(shè)計高手18課
- Excel 2019公式、函數(shù)應(yīng)用大全
- Excel大神是怎么做表的
- 非常Easy:Office高效辦公
- Excel 2016在會計與財務(wù)管理中的應(yīng)用(微課版)
- Excel 2010基礎(chǔ)入門與辦公應(yīng)用
- Office 2003辦公應(yīng)用實戰(zhàn)從入門到精通
- 辦公自動化教程(第2版)
- 如何高效辦公:Excel 2013經(jīng)典應(yīng)用技巧大全
- Excel 2013操作與技巧
- 圖表之美:打造優(yōu)秀的Excel圖表
- Word/Excel/PPT 2007入門與提高
- PowerShell for Office 365應(yīng)用實戰(zhàn)
- 辦公自動化全能一本通