Laadige alla töövihiku näide
See õpetus näitab teile, kuidas VBA abil teatud taustavärvi lahtreid loendada või summeerida.
Kaaluge Excelis järgmist vahemikku.
Värviliste lahtrite loendamiseks pole sisseehitatud Exceli funktsiooni. Selle asemel peame VBA abil looma kasutaja määratud funktsiooni.
Loendage lahtrid - looge kohandatud funktsioon VBA
VBA abil teatud värvi lahtrite loendamine on kasutaja määratud funktsiooni (UDF) loomine, mis vaatab kõik vahemiku lahtrid läbi ja määrab, kas iga lahtri taustavärv vastab teie valitud taustavärvile testivad ja kasutavad seda funktsiooni Exceli töölehel.
VBA -s loome funktsiooni valitud lahtrite loendamiseks.
12345678910111213141516 | Funktsioon CountCellsByColor (rng As Range, ColorCell As Range) TopeltDim dblCount As DoubleDim rngCell As Range„Loop tegi kõik vahemiku lahtridIga rngraku jaoks rng'kontrollige, kas sisemine värv on teie valitud lahtriga sama värviKui rngCell.Interior.Color = ColorCell.Interior.Color SiisKui IsNumeric (rngCell.Value) = Tõene siis"kui värv on õige, suurendage arvu 1 võrra.dblCount = dblCount + 1Lõpp KuiLõpp KuiEdasi'Tagastage väärtus ExcelileCountCellsByColor = dblCountLõppfunktsioon |
Seejärel kasutage väärtuse tagastamiseks seda funktsiooni töölehel.
1 | = CountCellsByColor (B2: E10, G4) |
- Klõpsake G4 oranži lahtrit ja seejärel nuppu Lisa funktsioon.
- Valige Kasutaja määratud kategooriana ja seejärel valige CountCellsByColor kasutatava funktsioonina.
- Klõpsake nuppu Okei.
- Tõstke esile vahemik, mis sisaldab kõiki värvilisi lahtreid.
- Valige ColorCellja seejärel klõpsake nuppu Okei.
Korrake protsessi, et loendada lahtrid rohelise taustaga.
1 | = CountCellsByColor (B2: E10, G5) |
Summarakud - looge kohandatud VBA -funktsioon
Loome sarnase kohandatud funktsiooni VBA -s, et liita teatud värvi lahtrite väärtused.
12345678910111213141516 | Funktsioon SumCellsByColor (rng As Range, ColorCell As Range) TopeltDim dblSum As DoubleDim rngCell As Range„Loop tegi kõik vahemiku lahtridIga rngraku jaoks rng'kontrollige, kas sisemine värv on teie valitud lahtriga sama värviKui rngCell.Interior.Color = ColorCell.Interior.Color SiisKui IsNumeric (rngCell.Value) = Tõene siis"lisage oma muutujale väärtus, kui värv on õigedblSum = dblSum + rngCell.ValueLõpp KuiLõpp KuiEdasi'Tagastage väärtus ExcelileSumCellsByColor = dblSumLõppfunktsioon |
Seejärel kasutaksime seda funktsiooni uuesti töölehel vajalike lahtrite summeerimiseks.
1 | = SumCellsByColor (B2: E10, G7) |