Stiahnite si ukážkový zošit
Tento tutoriál vám ukáže, ako pomocou VBA počítať alebo sčítať bunky určitej farby pozadia.
V programe Excel zvážte nasledujúci rozsah.
V programe Excel nie je vstavaná funkcia na počítanie farebných buniek. Namiesto toho musíme vytvoriť funkciu definovanú používateľom pomocou VBA.
Počet buniek - vytvorte vlastnú funkciu VBA
Spočítanie počtu buniek určitej farby pomocou VBA je záležitosťou vytvorenia funkcie definovanej používateľom (UDF), ktorá bude prechádzať všetkými bunkami v rozsahu, a určiť, či sa farba pozadia každej bunky zhoduje s farbou pozadia, ktorú testujú a potom používajú túto funkciu v pracovnom hárku programu Excel.
Vo VBA vytvárame funkciu na počítanie vybraných buniek.
12345678910111213141516 | Funkcia CountCellsByColor (ako rozsah, ColorCell ako rozsah) ako dvojnásobokDim dblCount as DoubleDim rngCell As Range„Smyčkou prechádzajte každou bunkou v rozsahuPre každý rngCell V rng„skontrolujte, či je farba interiéru rovnaká ako farba bunky, ktorú ste vybraliAk rngCell.Interior.Color = ColorCell.Interior.Color PotomAk je IsNumeric (rngCell.Value) = True Then„zvýšte počet o 1, ak je farba správna.dblCount = dblCount + 1Koniec AkKoniec AkĎalšie„Vráťte hodnotu do ExceluCountCellsByColor = dblCountKoncová funkcia |
Potom použite túto funkciu v pracovnom hárku na vrátenie hodnoty.
1 | = CountCellsByColor (B2: E10, G4) |
- Kliknite na oranžovú bunku v G4 a potom kliknite na položku Vložiť funkciu.
- Vyberte Definované užívateľom ako kategóriu a potom vyberte CountCellsByColor ako funkciu, ktorú treba použiť.
- Kliknite OK.
- Zvýraznite rozsah, ktorý obsahuje všetky farebné bunky.
- Vyberte položku ColorCella potom kliknite na položku OK.
Opakujte postup, aby ste bunky spočítali so zeleným pozadím.
1 | = CountCellsByColor (B2: E10, G5) |
Sumárne bunky - vytvorte si vlastnú funkciu VBA
Podobnú vlastnú funkciu vytvárame vo VBA na súčet hodnôt buniek určitej farby.
12345678910111213141516 | Funkcia SumCellsByColor (ako rozsah, ColorCell ako rozsah) ako dvojnásobokDim dblSum as DoubleDim rngCell As Range„Prejdite cez každú bunku v dosahuPre každý rngCell V rng„skontrolujte, či je farba interiéru rovnaká ako farba bunky, ktorú ste vybraliAk rngCell.Interior.Color = ColorCell.Interior.Color PotomAk je IsNumeric (rngCell.Value) = True Then'ak je farba správna, pridajte hodnotu do svojej premennejdblSum = dblSum + rngCell.ValueKoniec AkKoniec AkĎalšie„Vráťte hodnotu do ExceluSumCellsByColor = dblSumKoncová funkcia |
Potom by sme túto funkciu znova použili v pracovnom hárku na zhrnutie požadovaných buniek.
1 | = SumCellsByColor (B2: E10, G7) |