Suma pagal spalvą - VBA kodo pavyzdžiai

Ši funkcija apskaičiuoja bendrą visų tam tikro diapazono ląstelių, kurios yra tam tikros spalvos, vertę:

Deja, nėra SUMIF funkcijos, kurią būtų galima susumuoti pagal ląstelių spalvą. Jei norite apibendrinti pagal spalvą, turėsite sukurti funkciją VBA.
Norėdami naudoti šį kodą: atidarykite „Visual Basic“ redaktorių („Alt“ + F11), įdėkite naują modulį („Įterpti“> „Modulis“) ir nukopijuokite ir įklijuokite norimą kodą į modulį.

Funkcija iki sumos pagal spalvą

1234567891011121314151617181920 Funkcija „Color_By_Numbers“ („Color_Range as Range“, „Color_Index as Integer“) kaip dviguba„Blyškūs spalvos_dydžiai kaip dvigubi„Dim Cell“„Pažvelgs į ląsteles, kurios yra diapazone, ir jei„spalvos interjero savybė atitinka reikiamą langelio spalvą'tada bus suma„Loop Through“ diapazonasKiekvienai langeliui „Color_Range“Jei (Cell.Interior.ColorIndex = Color_Index) TadaColor_By_Numbers = Color_By_Numbers + Cell.ValuePabaiga JeiKitas langelisPabaigos funkcija

Tai iš tikrųjų yra „suma pagal spalvą“ - taigi, jei žinote „Excel“ 56 spalvų palatę ir žinote, kad, pavyzdžiui, 4 spalva yra šviesiai žalia, skambinkite taip:

Spalvų_skaičiai („A1: P20“, 4)

susumuoja visų šviesiai žalios spalvos A1: P20 diapazono langelių reikšmes.

Kad būtų lengviau naudotis šia funkcija, ši paprogramė nustatys bendrą kiekvienos iš 56 „Excel“ spalvų vertę. Tai taip pat suteikia visą gomurį, kad būtų lengva pamatyti kiekvienos spalvos indekso numerį.

Paprograma iškviečiama 1 lape ir žiūri į diapazoną

12345678910111213141516171819202122 Privati ​​antrinė komandaButton1_Click ()„Peržiūrės kiekvieną spalvą ir sudarys suvestinę verčių lentelę“1 lape A1 langelyje ir žemynBlyškus dabartinis_spalvos_skaičius kaip sveikasis skaičiusBlyškiai nuspalvinti_dvigubaiDabartiniams_spalvoms_skaičius = nuo 1 iki 56Color_Total = Color_By_Numbers (skaičiuoklės („Sheet2“). Diapazonas („a11: aa64“), Current_Color_Number)Darbo lapai ("Sheet1"). Diapazonas ("A1"). Poslinkis (Current_Color_Number, 0) = Current_Color_NumberDarbo lapai („Sheet1“). Diapazonas („A1“). Poslinkis (Current_Color_Number, 0). Interior.ColorIndex = Current_Color_NumberJei Color_Total 0# TadaDarbo lapai ("Sheet1"). Diapazonas ("a1"). Poslinkis (Current_Color_Number, 1). Value = Color_TotalPabaiga JeiKitas Dabartinis_spalvos numerisPabaiga Sub

Norėdami atsisiųsti XLS failą, spustelėkite čia

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave