Cum se schimbă culoarea unui rând în Excel în funcție de valoarea din celulă. VBA Excel. Culoarea celulei (umplere, fundal). Model de culoare RGB

Dacă o valoare dintr-o celulă îndeplinește o condiție definită de utilizator, o puteți folosi pentru a evidenția celula respectivă (de exemplu, modificați fundalul). În acest articol vom merge mai departe - vom selecta întregul rând al tabelului care conține această celulă.

Lasă în rază A6:C16 Există un tabel cu o listă de lucrări, termene limită și stare de finalizare (vezi fișierul exemplu).

Sarcina 1 - valori text

Este necesar să se evidențieze linia care conține lucrarea unui anumit statut. De exemplu, dacă lucrarea nu a început, atunci linia va fi evidențiată cu roșu, dacă lucrarea nu a fost încă finalizată, apoi cu gri și, dacă este finalizată, apoi cu verde. Vom selecta linii folosind reguli.

Soluția 1

Să creăm un mic tabel cu stările jobului în interval E6:E9 .

Selectați un interval de celule A7:C17 , care conține o listă de lucrări și instalați-l prin meniu Acasă/ Culoare de umplere fundalul de umplere este roșu (presupunem că toate lucrările sunt inițial în stare Nu a început).

Asigurați-vă că este selectat intervalul de celule A7:C17 (A7 trebuie să fie ). Apelați comanda de meniu Formatare condiționată / Creați o regulă / Folosiți o formulă pentru a determina ce celule să formatați.

  • in camp" Formatați valori pentru care următoarea formulă este adevărată„trebuie să introduceți =$C7=$E$8 (în celulă E8 valoarea este găsită În curs). Vă rugăm să rețineți utilizarea de ;
  • apasa butonul Format;
  • selectați fila Completati;
  • alege culoarea gri ;
  • Faceți clic pe OK.

ATENŢIE: Încă o dată atrag atenția asupra formulei =$C7=$E$8 . De obicei, utilizatorii intră =$C$7=$E$8 , adică introduceți un simbol dolar suplimentar.

Trebuie să faceți pași similari pentru a evidenția munca în stare Efectuat. Formula în acest caz va arăta ca =$C7=$E$9 și va seta culoarea de umplere la verde.

Ca urmare, tabelul nostru va lua următoarea formă.

Pentru a extinde rapid regulile de formatare condiționată la un nou rând dintr-un tabel, selectați celulele noului rând ( A17:C17 ) și apăsați . Regulile vor fi copiate pe linie 17 Mese.

Sarcina 2 - Date

Să presupunem că se ține un jurnal al prezenței angajaților la conferințe științifice (vezi. fisa mostra fisier Date).

Din păcate, coloana Data vizitei nu este sortată și trebuie să evidențiați data primei și ultimei vizite a fiecărui angajat. De exemplu, angajatul Kozlov a mers la conferință pentru prima dată pe 24 iulie 2009 și ultima dată pe 18 iulie 2015.

Mai întâi, să creăm o formulă pentru formatarea condiționată în coloanele B și E. Dacă formula returnează TRUE, atunci rândul corespunzător va fi evidențiat, dacă FALSE, atunci nu va fi evidențiat.

În coloana D creat = MAX(($A7=$A$7:$A$16)*$B$7:$B$16)=$B7, care definește data maximă pentru un anumit angajat.

Notă: Dacă trebuie să determinați data maximă indiferent de angajat, atunci formula va fi simplificată semnificativ =$B7=MAX($B$7:$B$16) și nu va fi necesară formula matrice.

Acum să selectăm toate celulele tabelului fără antet și să creăm o regulă. Să copiem formula în regulă (nu trebuie să o introduceți ca formulă matrice!).

Acum să presupunem că coloana cu date a fost sortată și doriți să selectați rânduri ale căror date de vizită se încadrează într-un anumit interval.

Pentru a face acest lucru, utilizați formula =ȘI($B23>$E$22,$B23<$E$23)

Pentru celule E22 Și E23 cu date limită (evidențiate cu galben) utilizate 22 USD și 23 USD. Deoarece referința la acestea nu ar trebui să se schimbe în regulile UV pentru toate celulele din tabel.

Pentru celulă B22 se utilizează adresarea mixtă $B23, adică referința la coloana B nu ar trebui să se schimbe (pentru aceasta există un semn $ înainte de B), dar referința la rând ar trebui să se schimbe în funcție de rândul tabelului (în caz contrar, toate valorile datei vor fi comparate cu data de la B23 ).

Astfel, regula UV de exemplu pentru o celulă A27 va arata =ȘI($B27>$E$22,$B27<$E$23) , т.е. A27 va fi evidenţiat deoarece în acest rând data de la B27 se încadrează în intervalul specificat (pentru celulele din coloana A, selecția se va face în continuare în funcție de conținutul coloanei B din același rând - aceasta este „magia” adresei mixte $B23).

Și pentru celulă B31 regula UV va arăta ca =ȘI($B31>$E$22,$B31<$E$23) , т.е. В31 не будет выделена, т.к. в этой строке дата из B31 nu se încadrează în intervalul specificat.

Umplerea unei celule cu culoare în VBA Excel. Fundalul celulei. Proprietăți.Interior.Culoare și.Interior.ColorIndex. Model de culoare RGB. Paleta standard de 56 de culori. Constante predefinite.

Proprietatea.Interior.Color a obiectului Range

Începând cu Excel 2007, modalitatea principală de a umple o gamă sau o celulă individuală cu culoare (pictați, adăugați, schimbați fundalul) este utilizarea proprietății Interior.Color a obiectului Range, atribuindu-i o valoare de culoare ca număr zecimal de la 0. la 16777215 (16777216 culori în total).

Umplerea unei celule cu culoare în VBA Excel

Exemplul de cod 1:

Sub ColorTest1() Range("A1").Interior.Color = 31569 Range("A4:D8").Interior.Color = 4569325 Range("C12:D17").Cells(4).Interior.Color = 568569 Cells (3, 6).Interior.Color = 12659 End Sub

Puneți exemplul de cod în modulul de program și apăsați butonul de pe bara de instrumente „Run Sub” sau de pe tastatura „F5”, cursorul ar trebui să fie în interiorul programului de execuție. În foaia de lucru Excel activă, celulele și intervalul selectat în cod vor apărea în culorile corespunzătoare.

Există o nuanță interesantă: dacă este atribuit unei proprietăți .Interioare.Culoare o valoare negativă de la -16777215 la -1, apoi culoarea va corespunde unei valori egale cu suma dintre valoarea maximă a paletei (16777215) și valoarea negativă atribuită. De exemplu, umplerea tuturor celor trei celule după executarea următorului cod va fi aceeași:

Sub ColorTest11() Cells(1, 1).Interior.Color = -12207890 Cells(2, 1).Interior.Color = 16777215 + (-12207890) Cells(3, 1).Interior.Color = 4569325 End Sub

Testat în Excel 2016.

Afișarea mesajelor despre valorile numerice ale culorilor

Este imposibil să vă amintiți valorile numerice ale culorilor, așa că se pune adesea întrebarea cum să aflați valoarea numerică a fundalului unei celule. Următorul cod VBA Excel afișează mesaje despre valorile numerice ale culorilor atribuite anterior.

Exemplul de cod 2:

Sub ColorTest2() MsgBox Range("A1").Interior.Color MsgBox Range("A4:D8").Interior.Color MsgBox Range("C12:D17").Cells(4).Interior.Color MsgBox Cells(3) , 6).Interior.Color End Sub

În loc să afișați mesaje, puteți atribui variabilelor valori numerice de culoare declarându-le ca Long.

Utilizarea constantelor predefinite

VBA Excel are constante predefinite pentru culorile de umplere a celulelor utilizate în mod obișnuit:

Culoarea este atribuită unei celule printr-o constantă predefinită în VBA Excel în același mod ca și cu o valoare numerică:

Exemplul de cod 3:

Range("A1"). Interior.Color = vbGreen

Model de culoare RGB

Sistemul de culori RGB este o combinație de trei culori primare de intensitate diferită: roșu, verde și albastru. Ele pot lua valori de la 0 la 255. Dacă toate valorile sunt 0, este negru, dacă toate valorile sunt 255, este alb.

Puteți selecta o culoare și puteți afla valorile RGB folosind paleta Excel:

Înainte de a putea atribui o culoare unei celule sau unui interval folosind valori RGB, acestea trebuie convertite într-un număr zecimal care reprezintă culoarea. Există o funcție Excel VBA pentru aceasta, care se numește RGB.

Exemplul de cod 4:

Interval(„A1”). Interior.Color = RGB(100, 150, 200)

Property.Interior.ColorIndex al obiectului Range

Înainte de apariția Excel 2007, exista doar o paletă limitată pentru umplerea celulelor cu un fundal, constând din 56 de culori, care a supraviețuit până în prezent. Fiecărei culori din această paletă i se atribuie un index de la 1 la 56. Puteți atribui o culoare unei celule după index sau puteți afișa un mesaj despre aceasta folosind proprietatea.Interior.ColorIndex:

Exemplul de cod 5:

Range("A1").Interior.ColorIndex = 8 MsgBox Range("A1").Interior.ColorIndex

Puteți vizualiza paleta limitată pentru umplerea celulelor cu fundal rulând cea mai simplă macrocomandă în VBA Excel:

Exemplul de cod 6:

Sub ColorIndex() Dim i As Byte For i = 1 To 56 Cells(i, 1).Interior.ColorIndex = i Next End Sub

Numerele de rând ale foii active de la 1 la 56 vor corespunde indexului de culoare, iar celula din prima coloană va fi umplută cu un fundal corespunzător indexului.

Puteți vedea paleta standard finită de 56 de culori.

Umplerea unui strat cu culoare este o operație simplă și populară în Photoshop. Acest lucru poate fi necesar atunci când aveți nevoie de un fundal simplu sau pentru a aplica o nuanță peste imagine - tonifiere, de exemplu, folosind un strat cu culoare galbenă pentru a crea un efect sepia.

Pentru a face un strat într-o singură culoare, am numărat 5 moduri posibile.

Metode de umplere a unui strat cu culoare

Metoda 1

Comanda de meniu Editare - Umplere(Completati) , sau apăsând o combinație de taste rapide care dublează această comandă:

Combinație de taste rapide: Shift+F5

Se va deschide o casetă de dialog Completati. În ea, în lista derulantă Utilizare Selectați Culoare. Paleta de selecție a culorilor se va deschide imediat. Decideți o culoare și faceți clic Bine.

Metoda 2

Folosind combinația de taste Alt+Backspace, stratul este umplut cu setul principal de culori din paleta de instrumente - .

Metoda 3 Instrumentul de umplere a vopselei

Din bara de instrumente, selectați Instrument de umplere. Faceți clic pe strat și acesta va fi vopsit imediat cu culoarea principală (vezi exemplul de mai sus).

Umplerea funcționează atunci când nu există nimic în plus pe strat. În caz contrar, instrumentul va picta doar anumite zone.

Îmi amintesc că când am început să învăț Photoshop, am folosit exact această metodă. Ideea este că pictezi pur și simplu peste strat cu o pensulă, așa cum Tom Sawyer a pictat un gard.

Toate metodele de mai sus au un dezavantaj comun - în cazurile în care este necesar, stratul umplut cu culoare nu va crește. Partea din pânză care a fost adăugată va fi pictată automat cu culoarea de fundal.

Exemplu. Inițial, stratul a fost umplut cu vopsea galbenă. După mărirea pânzei, de-a lungul conturului a fost adăugată o culoare roșiatică, în conformitate cu ceea ce a fost afișat pe indicatorul de culoare de fundal.

Pentru a preveni acest lucru, trebuie să utilizați următoarea metodă.

Metoda 5 Umpleți stratul

Rulați comanda Strat - Strat de umplere nou(Strat de umplere nou) - Culoare. Puteți face imediat clic pe OK. După aceasta, va apărea o paletă de selecție a culorii de umplere. Fa o alegere.