A következő függvény kiszámítja az adott színtartomány összes cellájának összértékét:
Sajnos nincs SUMIF függvény, amelyet a cella színe alapján összegezhetnénk. Ha szín szerint szeretne összegezni, létre kell hoznia egy függvényt a VBA -n belül.
A kód használata: Nyissa meg a Visual Basic Editor -t (Alt + F11), helyezzen be egy új modult (Insert> Module), és másolja be a kívánt kódot a modulba.
Funkció összeg szerint szín szerint
1234567891011121314151617181920 | Funkció Színes_Számok (Színtartomány mint tartomány, Színes_index mint egész) Kettős'Halvány Színes_Számok DuplakéntDim Cell- Meg fogja nézni a tartományban lévő cellákat, és ha igen'a belső belső tulajdonság megfelel a kívánt cellaszínnek'akkor összegződik'Loop Through tartományA Color_Range minden cellájáhozHa (Cell.Interior.ColorIndex = Color_Index) AkkorColor_By_Numbers = Color_By_Numbers + Cell.ValueVége HaKövetkező cellaVége funkció |
Ez valójában „összeg szín szerint” - tehát ha ismeri az Excel 56 színpalettáját, és tudja például, hogy a 4 -es szín világos zöld, akkor a következő hívás:
Színes_szám_számok („A1: P20”, 4)
összesíti az A1: P20 tartomány összes, világos zöld színű cellájának értékeit.
A funkció használatának megkönnyítése érdekében a következő alprogram meghatározza az Excel 56 színének összes értékét. Ezenkívül az egész palatte -t megadja, így könnyen látható az egyes színek indexszáma.
Az alprogram meghívásra kerül az 1. lapon, és a tartományt nézi
12345678910111213141516171819202122 | Privát alparancsButton1_Click ()- Megvizsgálja az egyes színeket, és összefoglaló értékrendet készít"az 1. lapon az A1 cellában és lefeléHalvány Aktuális_szín_szám mint egészHalvány szín_összesen kettősA Current_Color_Number = 1 és 56 közöttColor_Total = Color_By_Numbers (Táblázatok ("Sheet2"). Tartomány ("a11: aa64"), Current_Color_Number)Munkalapok ("Sheet1"). Tartomány ("A1"). Eltolás (Current_Color_Number, 0) = Current_Color_NumberMunkalapok ("Sheet1"). Tartomány ("A1"). Eltolás (Current_Color_Number, 0) .Interior.ColorIndex = Current_Color_NumberHa Color_Total 0# AkkorMunkalapok ("Sheet1"). Tartomány ("a1"). Eltolás (Current_Color_Number, 1). Value = Color_TotalVége HaKövetkező Current_Color_NumberEnd Sub |
Az XLS fájl letöltéséhez kattintson ide