Jak wykonać formatowanie warunkowe za pomocą VBA w programie Microsoft Excel

Anonim

Namalujmy obraz Monalisy i zostawmy Picassa za pomocą VBA. Gotowy, przygotuj się…

Czekać! Czekać! Nie tak prędko. Po prostu użyjemy VBA do formatowania warunkowego i jest to łatwiejsze niż malowanie, które? w kształcie ptaka.

Ogólna składnia formatowania warunkowego VBA

Jeśli warunek niż Range(range).Interior.ColorIndex= 1-56

Sprawdź swój warunek na warunku, a następnie sformatuj swój zakres za pomocą właściwości .iteriour.colorindex obiektu Range. Indeks kolorów ma 56 kolorów. Idź z nimi zagrać w Holi i zbadaj, która liczba ma dany kolor.
Teraz zrozummy to na przykładzie

Przykład: kod VBA do warunkowego formatowania komórek

Oto scenariusz, mamy listę przypadkowych osób z ich wiekiem i grupą wiekową.
Jak łatwo byłoby powiedzieć grupie wiekowej osobę, po prostu patrząc na jej imiona.
Teraz, aby to zrobić, chcę format VBA Imię CZERWONY, jeśli jest dorosły, ŻÓŁTY, jeśli jest nastolatkiem, i ZIELONY, jeśli jest DZIECKIEM, i nic, jeśli komórka jest pusta.

Sub FormatUsingVBA() Dim rng As Range Dim lastRow As Long lastRow = Cells(Rows.Count, 3).End(xlUp).Row Set rng = Range("C2:C" & lastRow)Dla każdej komórki W komórce rng If. Value2 = "Dorosły" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range(cell.Address).Offset(0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Nastolatek" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address).Offset(0, -2). Interior.ColorIndex = 0 End If Następna komórka End Sub

Aby uruchomić ten kod bezpośrednio z arkusza, narysowałem przycisk na tym samym arkuszu i przypisałem do niego to makro. Teraz za każdym razem, gdy klikniesz przycisk „Format”, Twój kod zostanie uruchomiony i zaktualizuje komórki nazw kolorami w zależności od ich grupy wiekowej. Jak? Dowiedzmy Się.

Wyjaśnienie kodu:

Dim rng As RangeDim lastRow As LongTe dwa wiersze to deklaracje zmiennych. rng dla zakresu, który zawiera grupę wiekową i lastRow, aby uzyskać ostatni niepusty numer wiersza. 
lastRow = Cells(Rows.Count, 3).End(xlUp).RowTa linia zwraca numer ostatniego wiersza w zmiennej lastRow.
Set rng = Range("C2:C" & lastRow)Ten wiersz ustawia zakres od C2 do ostatniego wiersza. To sprawia, że ​​Twój kod jest dynamiczny. Dodajesz nowe wiersze do swoich danych, a one wykryją i będą przechowywać w nowym zakresie w zmiennej rng.
Dla każdej komórki In rng If cell.Value2 = "Dorosły" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range(cell.Address). Offset(0, -2).Interior.ColorIndex = 4 ElseIf cell.Value2 = "Nastolatek" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address). Offset(0, -2).Interior.ColorIndex = 0 End If Następna komórka 

To jest główny segment.

Dla każdej komórki w rng 

Pierwsza linia prowadzi pętlę do wszystkich komórek w twoim zakresie. If cell.Value2 = "Dorosły" Wtedy
Następna linia to sprawdzenie warunku. Sprawdza, czy bieżąca wartość komórki to Dorosły, czy nie.
Jeśli tak, uruchamiana jest następna linia, w przeciwnym razie przechodzi do następnej if statement.Range(cell.Address).Offset(0,-2).Interior.ColorIndex = 3
Teraz, jeśli warunek JEŻELI zwraca TRUE, to ten wiersz ustawia kolor komórki na ColorIndex 3, czyli na CZERWONY.

Podobnie, następujące instrukcje IF uruchamiają i podejmują określone działania.

Więc tak, możesz warunkowo formatować zakresy za pomocą VBA. Metoda wewnętrzna obiektu Range kontroluje wiele innych właściwości formatowania. Warto się nimi bawić, to nie zaszkodzi, ale na pewno się nauczysz. A jeśli napotkasz jakiekolwiek trudności, to po co tu jestem. Zadawaj pytania w sekcji komentarzy.

Pobieranie pliku

Formatowanie warunkowe przy użyciu VBA w programie Microsoft Excel

Popularne artykuły:

50 skrótów Excela, które zwiększą Twoją produktywność

Jak korzystać z funkcji WYSZUKAJ.PIONOWO w programie Excel

Jak korzystać z funkcji LICZ.JEŻELI w programie Excel

Jak korzystać z funkcji SUMA.JEŻELI w programie Excel