Summa värin mukaan - Esimerkkejä VBA -koodista

Seuraava toiminto laskee tietyn alueen kaikkien solujen kokonaisarvon, jotka ovat tiettyä väriä:

Valitettavasti SUMIF -funktiota ei voida laskea solun värin perusteella. Jos haluat tehdä summan värin mukaan, sinun on luotava toiminto VBA: ssa.
Tämän koodin käyttäminen: Avaa Visual Basic Editor (Alt + F11), aseta uusi moduuli (Insert> Module) ja kopioi ja liitä haluamasi koodi moduuliin.

Toiminto summan mukaan värin mukaan

1234567891011121314151617181920 Toiminto Color_By_Numbers (Color_Range as Range, Color_Index as Integer) Double'Himmennä väri_numerot kaksinkertaisenaHimmeä solu'Tarkastellaan soluja, jotka ovat alueella ja jos'värin sisäominaisuus vastaa vaadittua soluväriä'sitten se summa'Loop Through -alueJokaiselle Color_Range -solulleJos (Cell.Interior.ColorIndex = Color_Index) SittenColor_By_Numbers = Color_By_Numbers + Solun arvoLoppu JosSeuraava soluLopeta toiminto

Tämä on käytännössä "summa värin mukaan" - joten jos tiedät Excelin 56 väripalaatin ja tiedät esimerkiksi, että väri 4 on vaaleanvihreä, soita seuraava:

Color_By_Numbers (“A1: P20”, 4)

laskee yhteen arvot kaikille soluille alueella A1: P20, jotka ovat vaaleanvihreitä.

Toiminnon käytön helpottamiseksi seuraava aliohjelma määrittää jokaisen Excelin 56 värin kokonaisarvon. Se antaa myös koko palatteen, jotta kunkin värin indeksinumero on helppo nähdä.

Aliohjelma vedotaan taulukkoon 1 ja tarkastellaan aluetta

12345678910111213141516171819202122 Yksityinen alikomentoButton1_Click ()'Tarkastellaan jokaista väriä ja laaditaan yhteenvetotaulukko'' taulukossa 1 solussa A1 ja alaspäinHimmennä nykyinen_värin_luku kokonaislukunaDim Color_Total Kuten tuplaCurrent_Color_Number = 1-56Color_Total = Color_By_Numbers (Sheets ("Sheet2"). Alue ("a11: aa64"), Current_Color_Number)Laskentataulukot ("Sheet1"). Alue ("A1"). Siirtymä (Current_Color_Number, 0) = Current_Color_NumberLaskentataulukot ("Sheet1"). Alue ("A1"). Siirtymä (Current_Color_Number, 0) .Interior.ColorIndex = Current_Color_NumberJos Color_Total 0# SittenLaskentataulukot ("Sheet1"). Alue ("a1"). Siirtymä (Current_Color_Number, 1) .Arvo = Color_TotalLoppu JosSeuraava Nykyinen_värinumeroEnd Sub

Lataa XLS -tiedosto napsauttamalla tätä

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave