Vsota po barvah - primeri kode VBA

Naslednja funkcija izračuna skupno vrednost vseh celic v določenem območju, ki so določene barve:

Na žalost ni funkcije SUMIF za seštevanje glede na barvo celice. Če želite sešteti po barvah, boste morali ustvariti funkcijo v VBA.
Če želite uporabiti to kodo: Odprite urejevalnik Visual Basic (Alt + F11), Vstavite nov modul (Vstavi> Modul) in kopirajte in prilepite želeno kodo v modul.

Funkcija seštevanja po barvah

1234567891011121314151617181920 Funkcija Color_By_Numbers (Color_Range As Range, Color_Index As Integer) Kot dvojna'Dim Color_By_Numbers As DoubleZatemnjena celica'Bo pogledal celice, ki so v razponu in če'lastnost barve notranjosti se ujema z zahtevano barvo celice'potem se bo seštelo'Doseg krogaZa vsako celico v barvnem obseguČe (Cell.Interior.ColorIndex = Color_Index) PotemColor_By_Numbers = Color_By_Numbers + Cell.ValueKonec ČeNaslednja celicaKončana funkcija

To je v bistvu "vsota po barvah" - če torej poznate Excelovo 56 barvno palato in na primer veste, da je barva 4 svetlo zelena, potem kličite naslednje:

Barvne_po_številkah (“A1: P20”, 4)

bo seštela vrednosti za vse celice v območju A1: P20, ki so svetlo zelene barve.

Za lažjo uporabo funkcije bo naslednja podprogram izračunala skupno vrednost za vsako od 56 Excelovih barv. Omogoča tudi celotno paleto, tako da je enostavno videti številko indeksa za vsako barvo.

Podprogram se prikliče na listu 1 in gleda na obseg

12345678910111213141516171819202122 Zasebni pod -ukaz Button1_Click ()'Preučil bo vsako barvo in pripravil povzetek tabel vrednosti'na listu 1 v celici A1 in navzdolZatemni Current_Color_Number kot celo številoZatemni Color_Total kot dvojnoZa Current_Color_Number = 1 do 56Color_Total = Color_By_Numbers (Sheets ("Sheet2"). Range ("a11: aa64"), Current_Color_Number)Delovni listi ("List1"). Obseg ("A1"). Odmik (Current_Color_Number, 0) = Current_Color_NumberDelovni listi ("List1"). Razpon ("A1"). Odmik (Current_Color_Number, 0) .Interior.ColorIndex = Current_Color_NumberČe je Color_Total 0# PotemDelovni listi ("List1"). Razpon ("a1"). Odmik (Current_Color_Number, 1) .Vrednost = Color_TotalKonec ČeNaslednja številka trenutne_barvnostiEnd Sub

Če želite prenesti datoteko XLS, kliknite tukaj

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave