Stáhněte si ukázkový sešit
Tento tutoriál vám ukáže, jak pomocí VBA počítat nebo sčítat buňky určité barvy pozadí.
Zvažte následující rozsah v aplikaci Excel.
V aplikaci Excel není integrována funkce pro počítání barevných buněk. Místo toho musíme vytvořit uživatelem definovanou funkci pomocí VBA.
Počet buněk - vytvořte vlastní funkci VBA
Počítání, kolik buněk má určitou barvu pomocí VBA, je otázkou vytvoření uživatelem definované funkce (UDF), která bude procházet všemi buňkami v rozsahu, a určit, zda barva pozadí každé buňky odpovídá barvě pozadí, kterou jste testují a poté používají tuto funkci v listu aplikace Excel.
Ve VBA vytváříme funkci pro počítání vybraných buněk.
12345678910111213141516 | Funkce CountCellsByColor (jako rozsah, ColorCell jako rozsah) jako dvojnásobekDim dblCount as DoubleDim rngCell As Range"Smyčkou projděte každou buňku v dosahu."Pro každý rngCell In rng'zkontrolujte, zda je barva interiéru stejná barva jako buňka, kterou jste vybraliIf rngCell.Interior.Color = ColorCell.Interior.Color ThenPokud je IsNumeric (rngCell.Value) = True Then'zvyšte počet o 1, pokud je barva správná.'dblCount = dblCount + 1Konec IfKonec Ifdalší'Vraťte hodnotu do Excelu.'CountCellsByColor = dblCountKoncová funkce |
Poté použijte tuto funkci v listu k vrácení hodnoty.
1 | = CountCellsByColor (B2: E10, G4) |
- Klikněte na oranžovou buňku v G4 a poté klikněte na Vložit funkci.
- Vybrat Definováno uživatelem jako kategorii a poté vyberte CountCellsByColor jako funkci, kterou chcete použít.
- Klikněte OK.
- Zvýrazněte rozsah, který obsahuje všechny barevné buňky.
- Vybrat ColorCella potom klikněte na OK.
Opakujte postup pro počítání buněk se zeleným pozadím.
1 | = CountCellsByColor (B2: E10, G5) |
Souhrnné buňky - vytvořte vlastní funkci VBA
Vytváříme podobnou vlastní funkci ve VBA pro součet hodnot buněk určité barvy.
12345678910111213141516 | Funkce SumCellsByColor (jako rozsah, ColorCell jako rozsah) jako dvojnásobekDim dblSum As DoubleDim rngCell As Range"Smyčkou projděte každou buňku v dosahu."Pro každý rngCell In rng'zkontrolujte, zda je barva interiéru stejná barva jako buňka, kterou jste vybraliIf rngCell.Interior.Color = ColorCell.Interior.Color ThenPokud je IsNumeric (rngCell.Value) = True Then'přidejte hodnotu do proměnné, pokud je barva správná.'dblSum = dblSum + rngCell.ValueKonec IfKonec Ifdalší'Vraťte hodnotu do Excelu.'SumCellsByColor = dblSumKoncová funkce |
Poté bychom tuto funkci znovu použili v listu k sečtení požadovaných buněk.
1 | = SumCellsByColor (B2: E10, G7) |