Zbroj po boji - primjeri VBA koda

Sljedeća funkcija izračunava ukupnu vrijednost svih ćelija u određenom rasponu određene boje:

Nažalost, ne postoji funkcija SUMIF za zbrajanje na temelju boje ćelije. Ako želite zbrojiti po boji, morat ćete stvoriti funkciju unutar VBA.
Za korištenje ovog koda: Otvorite Visual Basic Editor (Alt + F11), Umetnite novi modul (Umetni> Modul) i kopirajte i zalijepite željeni kôd u modul.

Funkcija zbrajanja po boji

1234567891011121314151617181920 Funkcija Color_By_Numbers (Color_Range As Range, Color_Index As Integer) Kao dvostruka'Dim Color_By_Numbers As DoubleZatamnjena ćelija'Pogledat će se stanice koje su u rasponu i ako'svojstvo boje interijera podudara se s potrebnom bojom ćelije'onda će se zbrojiti'Loop Through rangeZa svaku ćeliju u rasponu bojaAko (Cell.Interior.ColorIndex = Color_Index) ZatimBoje_Broj_brojeva = Boja_Broj_brojeva + Ćelija.VrijednostZavrši akoSljedeća ćelijaZavršna funkcija

To je u stvari "zbroj po boji" - pa ako poznajete Excelovu paletu od 56 boja i na primjer znate da je boja 4 svijetlo zelena, tada se poziva:

Boje_po_brojevima ("A1: P20", 4)

zbrajat će vrijednosti za sve ćelije u rasponu A1: P20 koje su svijetlozelene boje.

Kako bi olakšali korištenje funkcije, sljedeća potprogram će izračunati ukupnu vrijednost za svaku od 56 excelovih boja. Također daje cijelu palatinu tako da je lako vidjeti broj indeksa za svaku boju.

Podprogram se poziva na listu 1 i gleda raspon

12345678910111213141516171819202122 Privatna pomoćna naredbaButton1_Click ()'Pogledat će svaku boju i izraditi zbirnu tablicu vrijednosti'na listu 1 u ćeliji A1 i prema doljePriguši Current_Color_Number kao cijeli brojDim Color_Total As DoubleZa broj tekuće_boje = 1 do 56Color_Total = Color_By_Numbers (Listovi ("Sheet2"). Raspon ("a11: aa64"), Current_Color_Number)Radni listovi ("List1"). Raspon ("A1"). Odstupanje (Broj_boje_tekuće_boje, 0) = Broj_boje_tekuće_bojeRadni listovi ("List1"). Raspon ("A1"). Odstupanje (Trenutna_boja_broj_boja, 0) .Interijer.Indeks boje = Trenutna_boja_brojaAko je Color_Total 0# TadaRadni listovi ("List1"). Raspon ("a1"). Odstupanje (Trenutna_boja_broja, 1) .Vrijednost = Boja_UkupnoZavrši akoSljedeći broj_boje_bojaKraj podm

Za preuzimanje XLS datoteke kliknite ovdje

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave