標題:
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
試試看
Option Explicit
Sub Ex()
Dim Rng As Range, AR(), C As Integer, R As Integer
For Each Rng In Sheets("图表").[b4:I11,b15:I22,b26:I33].Areas
ReDim AR(1 To Rng.Columns.Count, 1 To Rng.Rows.Count)
For R = 1 To Rng.Rows.Count
For C = 1 To Rng.Columns.Count
AR(R, C) = 0
If Rng.Cells(R, C).FormatConditions.Count > 0 Then
Rng.Cells(R, C).Select
If Application.Evaluate(Rng.Cells(R, C).FormatConditions(1).Formula1) Then AR(R, C) = Rng.Cells(R, C).Value
End If
Next
Rng.Cells(R, C) = Application.Sum(Application.Index(AR, R))
Next
For C = 1 To Rng.Columns.Count
Rng.Cells(Rng.Rows.Count + 1, C) = Application.Sum(Application.Index(Application.Transpose(AR), C))
Next
Rng.Cells(Rng.Rows.Count + 1, Rng.Columns.Count + 1) = Application.Sum(Rng.Columns(Rng.Columns.Count + 1))
Next
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("芞桶")這工作表須修正
For Each Rng In Sheets("芞桶").[b4:I11,b15:I22,b26:I33].Areas
複製代碼
作者:
doom834
時間:
2013-10-24 08:30
那是因為我在大陸用這裡的筆電,
事實上在我的電腦上看是圖表這個Sheet沒錯,
這個是編碥轉換上造成的亂碼。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)