Suma podľa farby - Príklady kódu VBA

Nasledujúca funkcia vypočíta celkovú hodnotu všetkých buniek v určitom rozsahu, ktoré majú konkrétnu farbu:

Sčítanie podľa farby buniek bohužiaľ neexistuje. Ak chcete sčítať podľa farby, budete musieť vytvoriť funkciu v rámci VBA.
Ak chcete použiť tento kód: Otvorte editor jazyka Visual Basic (Alt + F11), vložte nový modul (Vložiť> Modul) a skopírujte a prilepte požadovaný kód do modulu.

Funkcia na súčet podľa farby

1234567891011121314151617181920 Funkcia Color_By_Numbers (Color_Range As Range, Color_Index As Integer) As Double'Dim Color_By_Numbers ako dvojnásobokDim Cell„Pozriem sa na bunky, ktoré sú v dosahu, a ak„Vlastnosť interiéru farby sa zhoduje s požadovanou farbou bunky'potom sa to zhrnie„Rozsah slučkyPre každú bunku v Color_RangeAk (Cell.Interior.ColorIndex = Color_Index) PotomColor_By_Numbers = Color_By_Numbers + Cell.ValueKoniec AkĎalšia bunkaKoncová funkcia

V skutočnosti je to „súčet podľa farby“ - takže ak poznáte 56 farebných chutí programu Excel a napríklad viete, že farba 4 je svetlo zelená, zavolajte nasledovne:

Color_By_Numbers („A1: P20“, 4)

sčíta hodnoty pre všetky bunky v rozsahu A1: P20, ktoré majú svetlo zelenú farbu.

Aby bolo používanie funkcie jednoduchšie, nasledujúci podprogram vypočíta celkovú hodnotu pre každú z 56 farieb programu Excel. Poskytuje tiež celé poschodie, takže je ľahké vidieť indexové číslo pre každú farbu.

Podprogram sa vyvolá na hárku 1 a pozerá sa na rozsah

12345678910111213141516171819202122 Súkromné ​​sub CommandButton1_Click ()„Pozrie sa na každú farbu a vytvorí súhrnnú tabuľku hodnôt„na liste 1 v bunke A1 a nadolDim Current_Color_Number ako celé čísloDim Color_Total as DoublePre Current_Color_Number = 1 až 56Color_Total = Color_By_Numbers (hárky ("Sheet2"). Rozsah ("a11: aa64"), Current_Color_Number)Pracovné listy („List1“). Rozsah („A1“). Ofset (Aktuálne_Color_Number, 0) = Aktuálne_Color_NčísloPracovné listy ("List1"). Rozsah ("A1"). Ofset (Current_Color_Number, 0). Interior.ColorIndex = Current_Color_NumberAk Color_Total 0# PotomPracovné listy („List1“). Rozsah („a1“). Ofset (Aktuálne_Color_Number, 1). Hodnota = Color_TotalKoniec AkĎalej Current_Color_NumberKoniec pod

Kliknite sem a stiahnite si súbor XLS

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave