Lataa esimerkkityökirja
Tämä opetusohjelma näyttää, kuinka lasketaan tai summataan tietyn taustavärin soluja VBA: n avulla.
Harkitse seuraavaa aluetta Excelissä.
Ei ole sisäänrakennettua Excel -toimintoa värillisten solujen laskemiseen. Sen sijaan meidän on luotava käyttäjän määrittämä toiminto VBA: n avulla.
Laske soluja - Luo mukautettu VBA -toiminto
Tietynväristen solujen laskeminen VBA: n avulla on käyttäjän määrittämän funktion (UDF) luominen, joka kiertää alueen kaikki solut ja määrittää, vastaako kunkin solun taustaväri valitsemasi taustaväriä testaavat ja käyttävät kyseistä toimintoa Excel -laskentataulukossa.
VBA: ssa luomme toiminnon valittujen solujen laskemiseksi.
12345678910111213141516 | Toiminto CountCellsByColor (rng as Range, ColorCell As Range) DoubleDim dblCount DoubleDim rngCell As Range'Silmukka kulki alueen jokaisessa solussaJokaista rng -solua kohti'Tarkista, onko sisätilojen väri sama kuin valitsemasi soluJos rngCell.Interior.Color = ColorCell.Interior.Color SittenJos IsNumeric (rngCell.Value) = Tosi'lisää määrää yhdellä, jos väri on oikea.dblCount = dblCount + 1Loppu JosLoppu JosSeuraavaPalauta arvo ExceliinCountCellsByColor = dblCountLopeta toiminto |
Käytä sitten tätä funktiota laskentataulukossa arvon palauttamiseen.
1 | = CountCellsByColor (B2: E10, G4) |
- Napsauta oranssia solua G4: ssä ja valitse Lisää toiminto.
- Valitse Käyttäjän määrittelemä luokana ja valitse sitten CountCellsByColor käytettävänä funktiona.
- Klikkaus OK.
- Korosta alue, joka sisältää kaikki värilliset solut.
- Valitse ColorCellja valitse sitten OK.
Toista prosessi laskeaksesi solut vihreällä taustavärillä.
1 | = CountCellsByColor (B2: E10, G5) |
Summasolut - Luo mukautettu VBA -toiminto
Luomme samankaltaisen mukautetun funktion VBA: ssa summatakseen tietyn värin solujen arvot.
12345678910111213141516 | Toiminto SumCellsByColor (rng as Range, ColorCell As Range) DoubleDim dblSum As DoubleDim rngCell As Range'Silmukka kulki alueen jokaisessa solussaJokaista rng -solua kohti'Tarkista, onko sisätilojen väri sama kuin valitsemasi soluJos rngCell.Interior.Color = ColorCell.Interior.Color SittenJos IsNumeric (rngCell.Value) = Tosi'lisää arvo muuttujaan, jos väri on oikeadblSum = dblSum + rngCell.ValueLoppu JosLoppu JosSeuraavaPalauta arvo ExceliinSumCellsByColor = dblSumLopeta toiminto |
Käytämme sitten tätä funktiota laskentataulukossa uudelleen yhteenvetoon vaadituista soluista.
1 | = SumCellsByColor (B2: E10, G7) |