返回列表 上一主題 發帖

誠求指點 Get Cell Color 公式 marco

回復 1# jakcy1234
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng(1 To 3) As Range, E As Range, T As Single, i As Integer, R_Add As String
  4.     Set Rng(1) = Sheet1.[b24:b25]
  5.     Set Rng(2) = Sheet1.[b2:f20]
  6.     For Each E In Rng(1)
  7.         Application.FindFormat.Interior.ColorIndex = E.Interior.ColorIndex
  8.         'FindFormat 設定或傳回要尋找之儲存格格式類型的搜尋準則。
  9.         Set Rng(3) = Rng(2).Find(What:="", SearchFormat:=True)
  10.         If Not Rng(3) Is Nothing Then R_Add = Rng(3).Address
  11.         i = 0
  12.         T = 0
  13.         Do While Not Rng(3) Is Nothing
  14.            i = i + 1
  15.            T = T + Rng(3)
  16.            Set Rng(3) = Rng(2).Find(What:="", After:=Rng(3), SearchFormat:=True)
  17.            If R_Add = Rng(3).Address Then Exit Do
  18.         Loop
  19.         E.Offset(, 1) = T
  20.         E.Offset(, 2) = i
  21.     Next
  22.     Application.FindFormat.Clear  ' 清除 FindFormat 設定要尋找之儲存格格式類型的搜尋準則。
  23. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 3# jakcy1234
2003測試沒這問題
可精簡如下
  1. Function MyColor(Rng As Range, MyIndex As Long) As Long
  2.     Dim A As Range, C As Range
  3.     For Each C In Rng.Cells
  4.         MyColor = MyColor + IIf(C.Interior.ColorIndex = MyIndex, 1, 0)
  5.     Next
  6. End Function
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2013-9-12 07:00 編輯

回復 5# jakcy1234
這網頁是指些版本  的陣列中元素的數目上限是 5461  
     5.0                        A                B,C
   7.0 (Excel 95)             D                E,C,H
   8.0 (Excel 97)             F                G,H
   9.0 (Excel 2000)           F                G,H

圖示 :2003版的執行圖

  1. Sub ex()
  2.    Dim ar()
  3.     '2003的Rows.Count=65536
  4.     ReDim ar(0 To Rows.Count + 1)
  5.     ar(Rows.Count + 1) = Rows.Count
  6.     MsgBox ar(Rows.Count + 1)
  7. End Sub
複製代碼
5# 的程式是將一定數目22000,5000,17000,33000 的字串指定到陣列再轉存到儲存格.
可將程式碼複製到任一空白工作表模組 試試看  

4# 的自訂函數  MyColor(儲存格範圍 , 圖樣底色數字) 試試看
可傳回: 儲存格範圍圖樣=圖樣底色數字的個數
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題