Microsoft excel 問題

2007-08-17 5:40 am
在 excel 中, 若我將同一個colume內的某些貯存格(類別為數字)設為紅色, 即該欄有一些是紅色, 一些是黑色. 怎様可將紅色的數值加總呢? 要最簡單的方法, 最好有function搞定!!!
(備注: 設為紅色的數字與其數值沒有任何關係)
更新1:

可否詳細說明怎様做呢? 即怎様寫vba呀?

更新2:

謝謝回答, 但仍想問, 將function 寫在VBE後, 怎様用這func 呢? 如我想在儲存格A10 顯示s的值, 在A10打 =sum_color("A1:A8", 3) 唔work喎?! 應該怎様做才對?

回答 (3)

2007-09-01 8:23 am
✔ 最佳答案
Excel 的 worksheet function 是無法判斷 字體(font)顏色 和 儲存格底色(interior)
VBA Function 通常是其中一個好方法, 樓上已列出, 故不再表述
如不用VBA, 亦可用 名稱定義配上 get.cell(編碼, range)去判斷

get.cell 編碼:
Font.Colorindex 是 24
Interior.Colorindex 是 38

如 儲存格未有設定顏色(即自動), colorindex 是 0
紅色 的 Colorindex 是 3
藍色 的 Colorindex 是 5

假設 A2:A8, 部份數字是 自動(即未有設定顏色), 部份是紅色, 部份是藍色
以 B欄作輔助
選B2, 按插入, 名稱, 定義
現有名稱 輸入color(此名稱是自訂的, 任何名稱均可)
參照到 輸入 =get.cell(24,A1)
確定
在B2 輸入 =color
下拉至B8
所有A2:A8的font.colorindex(0, 3, 5)都會對應顯示在B2: B8

在 A10 輸入
=SUMIF(B2:B8,5,A2:A8)
顯示 藍字的加總

在 A10 輸入
=SUMIF(B2:B8, " > 0 ",A2:A8)
顯示 所有顏色的加總

2007-09-01 01:11:26 補充:
更正:參照到 輸入 =get.cell(24,A1)應是參照到 輸入 =get.cell(24,A2)
2007-08-30 2:33 am
下面的 function, 只要輸入 range 及 color index, 就可以計算出 符合 color index 的 加總:
Dim ran As Range
Dim col_ind

Public Function sum_color(ran, col_ind)
'
s = 0
For Each c In ran
If c.Font.ColorIndex = col_ind Then s = s + c
Next

sum_color = s

End Function

---------------------------------------
e.g. =sum_color(A1:A8, 3)
會為 a1:a8 間 紅色(color index 為 3) 的數加總.

2007-08-23 12:20 am
要用vba才可做得到.


收錄日期: 2021-04-28 16:31:12
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070816000051KK05802

檢視 Wayback Machine 備份