官术网_书友最值得收藏!

第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。

主站蜘蛛池模板: 南澳县| 湘潭市| 梧州市| 新宁县| 隆德县| 伊川县| 镇巴县| 金堂县| 海安县| 曲沃县| 安国市| 封开县| 浙江省| 神池县| 舞钢市| 宁明县| 平乡县| 江陵县| 丹巴县| 岑巩县| 翼城县| 黑水县| 安乡县| 安吉县| 花垣县| 西和县| 高淳县| 新乡市| 含山县| 金乡县| 从化市| 固始县| 泸定县| 辉县市| 拜泉县| 工布江达县| 谷城县| 黄山市| 鹿邑县| 旅游| 大埔区|