返回列表 上一主題 發帖

[發問] 關於以"儲存格底色"進行排序的問題

本帖最後由 GBKEE 於 2010-6-8 20:43 編輯

回復 1# sujane0701
試試看 只可區分儲存格色彩 有或無
  1. Sub Ex()
  2.     Dim i%, Rng As Range, R, D(1 To 2) As Object, C%
  3.     For i = 7 To 6 + (3 * 8) Step 3
  4.         If Cells(Rows.Count, i).End(xlUp) <> Cells(1, i) Then
  5.             Set D(1) = CreateObject("Scripting.Dictionary")
  6.             Set D(2) = CreateObject("Scripting.Dictionary")
  7.             Set Rng = Range(Cells(1, i), Cells(1, i).End(xlDown)).Resize(, 3)
  8.             For Each R In Rng.Columns(1).Cells
  9.                 If R.Interior.ColorIndex <> xlNone Then  ' <>xlNone-> 不等於無色彩
  10.                     D(1)(R.Value) = R.Resize(, 3)
  11.                     C = R.Interior.ColorIndex             '取得色彩的 No
  12.                 Else  '  無色彩
  13.                     D(2)(R.Value) = R.Resize(, 3)
  14.                 End If
  15.             Next
  16.             If D(1).Count > 0 Then
  17.                 With Rng(1).Resize(D(1).Count, 3)
  18.                     .Value = Application.Transpose(Application.Transpose(D(1).ITEMS))
  19.                     .Interior.ColorIndex = C
  20.                     .Sort Key1:=Rng(1), Header:=xlNo    'xlNo無標題
  21.                 End With
  22.             End If
  23.             If D(2).Count > 0 Then
  24.                 With Rng(D(1).Count + 1, 1).Resize(D(2).Count, 3)
  25.                     .Value = Application.Transpose(Application.Transpose(D(2).ITEMS))
  26.                     .Interior.ColorIndex = xlNone
  27.                     .Sort Key1:=Rng(D(1).Count + 1, 1), Header:=xlNo
  28.                 End With
  29.             End If
  30.         End If
  31.     Next
  32. End Sub
複製代碼

TOP

        靜思自在 : 我們要做好社會的環保,也要做好內心的環保。
返回列表 上一主題