返回列表 上一主題 發帖

[發問] (已解決)可以針對格式化條件的顏色做判斷嗎?

本帖最後由 GBKEE 於 2011-5-7 08:37 編輯

格式化條件有   公式  及  儲存格的值 兩種
  1. Sub Ex()
  2. Dim A As Range, k%, C As Object, F%(1)
  3. For Each A In Range("b:b").SpecialCells(xlCellTypeConstants).SpecialCells(xlCellTypeAllFormatConditions)
  4.    k = 0
  5.    A.Select
  6.    For Each C In A.FormatConditions
  7.         If C.Type = 1 Then   '格式化條件 1儲存格的值
  8.             F(0) = C.Formula1
  9.             Select Case C.Operator
  10.                 Case 1  '>= AND <=
  11.                     F(1) = C.Formula2
  12.                     If A.Value >= F(0) And A.Value <= F(1) Then k = 1
  13.                 Case 2  '< or >
  14.                     F(1) = C.Formula2
  15.                     If A.Value < F(0) Or A.Value > F(1) Then k = 1
  16.                 Case 3  '=
  17.                     If A.Value = F(0) Then k = 1
  18.                 Case 4  '<>
  19.                     If A.Value <> F(0) Then k = 1
  20.                 Case 5  '>
  21.                     If A.Value > F(0) Then k = 1
  22.                 Case 6  '<
  23.                     If A.Value < F(0) Then k = 1
  24.                 Case 7  '>=
  25.                     If A.Value >= F(0) Then k = 1
  26.                 Case 8  '<=
  27.                     If A.Value <= F(0) Then k = 1
  28.             End Select
  29.         Else    '格式化條件 公式
  30.             If Application.Evaluate(C.Formula1) = True Then k = 1
  31.         End If
  32.    Next
  33.    If k = 0 Then A.EntireRow.Hidden = True
  34. Next
  35. End Sub
複製代碼

TOP

本帖最後由 GBKEE 於 2011-5-8 20:54 編輯

回復 7# freeffly
k%  F%(1)  作用?  ()裡面有什麼妙處嗎?
Dim  k% -> k As Integer                  '宣告 變數 k 為 Integer 資料型態 宣告字元是百分比符號(%)。
Dim F%(1)-> F(0 To 1) As Integer    '宣告 變數  F 是(一維陣列,為 0 到 1個元素),    為 Integer 資料型態

For Each C In A.FormatConditions   A.儲存格的格式化條件 (最多可以有三個) ,C 為依序所設的 1-3 的條件
圖解






Select Case C.Operator -> 依C.Operator 的運算子 來執行程式碼
可察看 VBA 的說明

TOP

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題