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

第17章 按顏色排序

Excel 2007新增按顏色排序功能,更廣泛地滿足了用戶需求。

按顏色排序和按數(shù)值排序在對(duì)選區(qū)內(nèi)數(shù)據(jù)的處理上稍有不同。按數(shù)值或者文本排序會(huì)對(duì)區(qū)域內(nèi)每一個(gè)單元格的數(shù)據(jù)進(jìn)行比較判斷,調(diào)整順序;而按顏色排序是以選中區(qū)域中激活的單元格(即背景反白顯示的單元格,不管選中多少區(qū)域,活動(dòng)單元格只有一個(gè))顏色為標(biāo)準(zhǔn),對(duì)顏色一致的單元格排在最頂端或者最底端,其余顏色的數(shù)據(jù)順序不變,不會(huì)將同顏色但分散存放的數(shù)據(jù)集中在一個(gè)區(qū)域。

● 實(shí)例123按單元格背景顏色對(duì)當(dāng)前列排序

● 實(shí)例124按單元格字體顏色對(duì)當(dāng)前列排序

● 實(shí)例125按字體顏色擴(kuò)展排序

實(shí)例123 按單元格背景顏色對(duì)當(dāng)前列排序

【技巧說(shuō)明】 按單元格背景顏色對(duì)當(dāng)前列當(dāng)前區(qū)域排序。

【案例介紹】 將當(dāng)前列當(dāng)前區(qū)域中數(shù)據(jù)背景色與當(dāng)前單元格背景色一致的排在頂端。初始數(shù)據(jù)如圖4.11所示。

【案例實(shí)現(xiàn)】 參見(jiàn)以下步驟:

[1] 使用快捷鍵Alt+F11進(jìn)入VBE(Visual Basic Editor)環(huán)境。

[2] 單擊菜單【插入】\【模塊】,打開(kāi)模塊代碼窗口。

[3] 在右邊代碼窗口輸入以下代碼:

Sub按單元格背景顏色對(duì)當(dāng)前列已用區(qū)域排序 ()
  With ActiveWorkbook.ActiveSheet.Sort
      .SortFields.Clear
      .SortFields.Add(ActiveCell,xlSortOnCellColor,xlAscending,,xlSortNormal)
      .SortOnValue.Color=ActiveCell.Interior.Color
      .SetRange Application.Intersect(ActiveCell.EntireColumn,
          ActiveCell.CurrentRegion)
      .Apply
    End With
End Sub

[4] 關(guān)閉VBE窗口返回到工作表。

[5] 選中A7單元格,用快捷鍵Alt+F8調(diào)出運(yùn)行宏窗口,然后單擊“執(zhí)行”按鈕,當(dāng)前區(qū)域中與當(dāng)前單元格A7背景色一致的單元格數(shù)據(jù)自動(dòng)移至最頂端,不包括A10∶A14區(qū)域,如圖4.12所示。

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

圖4.12 已按單元格背景顏色排序的數(shù)據(jù)

提示

本實(shí)例參見(jiàn)光盤(pán)樣本:..\第4部分\實(shí)例123.xlsm。

【相關(guān)知識(shí)說(shuō)明】

ActiveCell.Interior.Color:當(dāng)前單元格的背景色。本例中表示排序條件。

實(shí)例124 按單元格字體顏色對(duì)當(dāng)前列排序

【技巧說(shuō)明】 按單元格字體顏色對(duì)當(dāng)前列已用區(qū)域進(jìn)行排序,所選字體顏色排在最底端。

【案例介紹】 將當(dāng)前列當(dāng)前區(qū)域中數(shù)據(jù)的字體顏色與當(dāng)前單元格字體顏色一致的排在底端。初始數(shù)據(jù)如圖4.13所示。

【案例實(shí)現(xiàn)】 參見(jiàn)以下步驟:

[1] 使用快捷鍵Alt+F11進(jìn)入VBE(Visual Basic Editor)環(huán)境。

[2] 單擊菜單【插入】\【模塊】,打開(kāi)模塊代碼窗口。

[3] 在右邊代碼窗口輸入以下代碼:

Sub按單元格字體顏色對(duì)當(dāng)前列排序且無(wú)標(biāo)題()
  With ActiveWorkbook.ActiveSheet.Sort
        .SortFields.Clear          '清除原排序信息
        .SortFields.Add(ActiveCell,xlSortOnFontColor,xlDescending,,xlSortNormal)
        .SortOnValue.Color=ActiveCell.Font.Color
      .SetRange Application.Intersect(ActiveCell.EntireColumn,
          ActiveCell.CurrentRegion)
      .Apply
    End With
End Sub

[4] 關(guān)閉VBE窗口返回到工作表。

[5] 選中A3單元格,用快捷鍵Alt+F8調(diào)出運(yùn)行宏窗口,然后單擊“執(zhí)行”按鈕,當(dāng)前區(qū)域中與當(dāng)前單元格A3字體顏色一致的單元格數(shù)據(jù)自動(dòng)移至最底端,不包括A10∶A14區(qū)域,如圖4.14所示。

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

圖4.14 已按單元格字體顏色排序的數(shù)據(jù)

提示

本實(shí)例參見(jiàn)光盤(pán)樣本:..\第4部分\實(shí)例124.xlsm。

【相關(guān)知識(shí)說(shuō)明】

ActiveCell.Font.Color:當(dāng)前單元格的字體顏色。本例中表示排序條件。

實(shí)例125 按字體顏色擴(kuò)展排序

【技巧說(shuō)明】 按單元格字體顏色對(duì)擴(kuò)展區(qū)域排序且有標(biāo)題。

【案例介紹】 將當(dāng)前列中字體顏色與當(dāng)前單元格字體顏色一致的數(shù)據(jù)排在頂端,已用區(qū)域中其他列的數(shù)據(jù)相應(yīng)調(diào)整,即對(duì)擴(kuò)展區(qū)域排序。初始數(shù)據(jù)如圖4.15所示。

【案例實(shí)現(xiàn)】 參見(jiàn)以下步驟:

[1] 使用快捷鍵Alt+F11進(jìn)入VBE(Visual Basic Editor)環(huán)境。

[2] 單擊菜單【插入】\【模塊】,打開(kāi)模塊代碼窗口。

[3] 在右邊代碼窗口輸入以下代碼:

Sub按單元格字體顏色擴(kuò)展區(qū)域排序且有標(biāo)題()
  With ActiveWorkbook.ActiveSheet.Sort
      .SortFields.Clear
      .SortFields.Add(ActiveCell, xlSortOnFontColor, xlAscending, , xlSortNormal)
.SortOnValue.Color=ActiveCell.Font.Color
      .SetRange Application.Intersect(Selection.CurrentRegion,
        Selection.CurrentRegion.Offset(1, 0))  '區(qū)域
      .Apply
    End With
End Sub

[4] 關(guān)閉VBE窗口返回到工作表。

[5] 選中A7單元格,用快捷鍵Alt+F8調(diào)出運(yùn)行宏窗口,然后單擊“執(zhí)行”按鈕,當(dāng)前列中與當(dāng)前單元格A7字體顏色一致的單元格數(shù)據(jù)自動(dòng)移至最頂端,B列和C列擴(kuò)展區(qū)域?qū)?yīng)A列進(jìn)行調(diào)整順序,如圖4.16所示。

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

圖4.16 已將擴(kuò)展數(shù)據(jù)區(qū)域排序

提示

本實(shí)例參見(jiàn)光盤(pán)樣本:..\第4部分\實(shí)例125.xlsm。

【相關(guān)知識(shí)說(shuō)明】

本實(shí)例與前面兩例有兩點(diǎn)不同:有標(biāo)題、擴(kuò)展區(qū)域參與排序。在編代碼時(shí)僅需要修改Sort的范圍參數(shù)SetRange即可。

實(shí)例124中使用以下區(qū)域(表示當(dāng)前列中的已用區(qū)域,僅限于當(dāng)前列):

    Intersect(ActiveCell.EntireColumn, ActiveCell.CurrentRegion)

本實(shí)例中使用已用區(qū)域(表示已用區(qū)域與已用區(qū)域向下偏移一行和合集,即排除第一行,這就對(duì)排序的區(qū)域進(jìn)行了擴(kuò)展,是已用區(qū)域,而非限于當(dāng)前列,同時(shí)排除了首行,即標(biāo)題不參與排序):

Intersect(Selection.CurrentRegion, Selection.CurrentRegion.Offset(1, 0))
主站蜘蛛池模板: 广元市| 台湾省| 孟州市| 元谋县| 安多县| 鹤峰县| 莲花县| 台江县| 谷城县| 青铜峡市| 巴南区| 卓资县| 四会市| 龙游县| 麦盖提县| 平舆县| 额敏县| 栾川县| 巴青县| 阳山县| 奎屯市| 辽阳县| 湖南省| 年辖:市辖区| 孟州市| 通许县| 琼结县| 英德市| 老河口市| 恩平市| 改则县| 定西市| 哈密市| 湘乡市| 马山县| 桦甸市| 南溪县| 利津县| 齐河县| 蓬莱市| 杭锦旗|