Board logo

標題: FormatConditions怎麼取得文字顏色的值 [打印本頁]

作者: doom834    時間: 2013-10-22 15:21     標題: FormatConditions怎麼取得文字顏色的值

各位大大,
我想要計算下圖(圖1)中紅色部分的總和,
我是在這個表格裡使用了儲存格條件,
但問題是我在VBA裡無法分辦在儲存格裡紅色與黑色差,
如我圖2,我用了很多語法都是得到相同的值,完全無法判斷,
是否有人知道怎麼判斷差異嗎??

圖1
[attach]16443[/attach]

圖2
[attach]16444[/attach]
作者: GBKEE    時間: 2013-10-22 15:44

回復 1# doom834
上傳檔案 看一下 FormatConditions的公式如何設定
作者: doom834    時間: 2013-10-22 15:53

我刪除了一些資料,不然檔案太大,若有需要完整版的檔案我再重傳!!

[attach]16445[/attach]
作者: GBKEE    時間: 2013-10-22 17:49

本帖最後由 GBKEE 於 2013-10-22 17:51 編輯

回復 3# doom834
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, AR(), C As Integer, R As Integer
  4.     For Each Rng In Sheets("图表").[b4:I11,b15:I22,b26:I33].Areas
  5.         ReDim AR(1 To Rng.Columns.Count, 1 To Rng.Rows.Count)
  6.         For R = 1 To Rng.Rows.Count
  7.             For C = 1 To Rng.Columns.Count
  8.                 AR(R, C) = 0
  9.                 If Rng.Cells(R, C).FormatConditions.Count > 0 Then
  10.                     Rng.Cells(R, C).Select
  11.                     If Application.Evaluate(Rng.Cells(R, C).FormatConditions(1).Formula1) Then AR(R, C) = Rng.Cells(R, C).Value
  12.                 End If
  13.             Next
  14.             Rng.Cells(R, C) = Application.Sum(Application.Index(AR, R))
  15.         Next
  16.         For C = 1 To Rng.Columns.Count
  17.             Rng.Cells(Rng.Rows.Count + 1, C) = Application.Sum(Application.Index(Application.Transpose(AR), C))
  18.         Next
  19.         Rng.Cells(Rng.Rows.Count + 1, Rng.Columns.Count + 1) = Application.Sum(Rng.Columns(Rng.Columns.Count + 1))
  20.     Next
  21. End Sub
複製代碼
格式化條件公式怪怪的參照是否跑掉了
[attach]16446[/attach]
作者: doom834    時間: 2013-10-23 10:59

GB大大,我用你的代碼跑不出來結果耶~~
計算出來的Sum都是0
另外格式化條件沒有設錯,我設定的邏輯是第1個表是>0的顯示紅字,
第2個表是依據第1個表有數字的才會示成紅字。

[attach]16455[/attach]
作者: doom834    時間: 2013-10-23 13:26

我認為是If Application.Evaluate(Rng.Cells(R, C).FormatConditions(1).Formula1) Then AR(R, C) = Rng.Cells(R, C).Value這行有點問題,
因為這個都是false,所以存入陣列AR裡的數值都是0,
最後加總起來的都是0
作者: GBKEE    時間: 2013-10-23 14:49

回復 5# doom834
你附檔中沒有Sheets("芞桶")這工作表須修正
  1. For Each Rng In Sheets("芞桶").[b4:I11,b15:I22,b26:I33].Areas
複製代碼

作者: doom834    時間: 2013-10-24 08:30

那是因為我在大陸用這裡的筆電,
事實上在我的電腦上看是圖表這個Sheet沒錯,
這個是編碥轉換上造成的亂碼。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)