Atsisiųskite darbaknygės pavyzdį
Ši pamoka parodys, kaip skaičiuoti ar susumuoti tam tikros fono spalvos langelius naudojant VBA.
Apsvarstykite šį „Excel“ diapazoną.
Nėra integruotos „Excel“ funkcijos spalvotoms ląstelėms skaičiuoti. Vietoj to mes turime sukurti vartotojo apibrėžtą funkciją naudodami VBA.
Skaičiuoti ląsteles - sukurkite pasirinktinę VBA funkciją
Norint suskaičiuoti, kiek ląstelių yra tam tikros spalvos naudojant VBA, reikia sukurti vartotojo apibrėžtą funkciją (UDF), kuri pereis per visas diapazono ląsteles ir nustatys, ar kiekvienos ląstelės fono spalva atitinka jūsų fono spalvą bando ir naudoja šią funkciją „Excel“ darbalapyje.
VBA sukuriame pasirinktų ląstelių skaičiavimo funkciją.
12345678910111213141516 | Funkcija CountCellsByColor (rng kaip diapazonas, ColorCell kaip diapazonas) kaip dvigubaDim dblCount As DoubleDim rngCell As Range„Kilpa perėjo kiekvieną diapazono ląstelęUž kiekvieną rngCell In rng“patikrinkite, ar vidinė spalva yra tokia pati kaip jūsų pasirinkto langelio spalvaJei rngCell.Interior.Color = ColorCell.Interior.Color TadaJei IsNumeric (rngCell.Value) = Tiesa tada„Padidinkite skaičių 1, jei spalva teisinga.dblCount = dblCount + 1Pabaiga JeiPabaiga JeiKitas„Grąžinkite vertę į„ Excel “CountCellsByColor = dblCountPabaigos funkcija |
Tada naudokite šią funkciją darbalapyje, kad grąžintumėte vertę.
1 | = CountCellsByColor (B2: E10, G4) |
- Spustelėkite oranžinį langelį G4 ir spustelėkite Įterpti funkciją.
- Pasirinkite Naudotojo apibrėžta kaip kategoriją, tada pasirinkite CountCellsByColor kaip naudojama funkcija.
- Spustelėkite Gerai.
- Pažymėkite diapazoną, kuriame yra visos spalvotos ląstelės.
- Pasirinkite „ColorCell“, tada spustelėkite Gerai.
Pakartokite procesą, kad suskaičiuotumėte ląsteles žalia spalva.
1 | = CountCellsByColor (B2: E10, G5) |
Sumos langeliai - sukurkite pasirinktinę VBA funkciją
Mes sukuriame panašią pasirinktinę funkciją VBA, kad apibendrintume tam tikros spalvos langelių reikšmes.
12345678910111213141516 | Funkcija SumCellsByColor (rng kaip diapazonas, ColorCell kaip diapazonas) kaip dvigubaDim dblSum As DoubleDim rngCell As Range„Kilpa perėjo kiekvieną diapazono ląstelęUž kiekvieną rngCell In rng“patikrinkite, ar vidinė spalva yra tokia pati kaip jūsų pasirinkto langelio spalvaJei rngCell.Interior.Color = ColorCell.Interior.Color TadaJei IsNumeric (rngCell.Value) = Tiesa tada“pridėkite vertę prie savo kintamojo, jei spalva teisingadblSum = dblSum + rngCell.ValuePabaiga JeiPabaiga JeiKitas„Grąžinkite vertę į„ Excel “SumCellsByColor = dblSumPabaigos funkcija |
Tada dar kartą panaudotume šią funkciją darbalapyje, kad apibendrintume reikiamas ląsteles.
1 | = SumCellsByColor (B2: E10, G7) |