Formatowanie warunkowe w Excel VBA

W programie Excel wszyscy używaliśmy formatowania warunkowego do wyróżnienia zduplikowanych wartości. Głównie formatowanie warunkowe służy do uzyskania duplikatów wartości. Możemy wyróżnić zduplikowane wartości na wiele sposobów. Możemy wyróżnić zduplikowane wartości, wartości specyficzne dla zakresu, a także zdefiniować regułę, aby wypełnić kryteria formatowania. Poniżej znajdują się funkcje zmiennych dostępne w ramach formatowania warunkowego.

Ale co, jeśli możemy zautomatyzować ten proces wyróżniania duplikatów lub dowolnych wartości zgodnie z naszymi wymaganiami. Kryteria, które możemy zdefiniować za pomocą formatowania warunkowego w programie Excel, można również wykonać w języku VBA. Do zastosowania formatowania warunkowego możemy wybrać dowolną komórkę, zakres dostępny w arkuszu programu Excel. Formatowanie warunkowe działa tylko wtedy, gdy zdefiniowane kryteria spełniają wymaganie. W przeciwnym razie nie pokaże żadnej zmiany koloru. Za pomocą formatowania warunkowego w VBA możemy zmienić kolor dowolnej komórki lub zawartości komórki, usunąć kolor komórki lub również kolor. Oprócz zmiany koloru komórki, możemy zmienić zawartość komórki na tekst pogrubiony lub kursywę . Po zakończeniu możemy również cofnąć wszystkie zmiany.

Jak korzystać z formatowania warunkowego w programie Excel VBA?

Poniżej znajdują się różne przykłady użycia funkcji formatowania warunkowego w programie Excel przy użyciu kodu VBA.

Możesz pobrać ten szablon Excel formatowania warunkowego VBA tutaj - Szablon Excel formatowania warunkowego VBA

Formatowanie warunkowe VBA - przykład nr 1

Mamy dane niektórych liczb i tekstu, jak pokazano poniżej w kolumnach A i B. Teraz już skategoryzowaliśmy kolor, który musimy nadać numerowi i tekstowi, który znajduje się w komórce D2. Zidentyfikowaliśmy Żółty kolor dla cyfry 1 i alfabetu A oraz Zielony kolor dla cyfry 2 i alfabetu B.

Chociaż formatowanie warunkowe VBA można wdrożyć w module, ale napisanie kodu formatowania warunkowego w arkuszu spowoduje, że kod będzie działał tylko w tym arkuszu. W tym celu zamiast przejść do opcji Moduł kliknij kartę Wstaw, aby wstawić moduł.

Krok 1: Teraz z pierwszego menu rozwijanego wybierz Arkusz, który będzie domyślnie Ogólny, a z menu rozwijanego wybierz automatycznie wybierze opcję SelectionChange, jak pokazano poniżej.

Krok 2: Gdy to zrobimy, automatycznie aktywuje podkategorię prywatną, a komórka docelowa będzie miała zasięg.

Kod:

 Prywatny arkusz podrzędny_wybór_wyboru (docelowy ByVal jako zakres) Koniec podrzędny 

Krok 3: Teraz napisz kod, najpierw zdefiniuj zmienną MyRange jako Range . Lub możesz wybrać dowolną inną nazwę zamiast MyRange według własnego wyboru.

Kod:

 Podrzędny arkusz roboczy_wybór_wyboru (docelowy ByVal jako zakres) Dim MyRange As Range End Sub 

Krok 4: Użyj Ustaw i wybierz zdefiniowany Zakres, jak pokazano poniżej.

Kod:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = End Sub 

Krok 5: Następnie wybierz arkusz, w którym chcemy zastosować formatowanie warunkowe. Tutaj nasz arkusz to Arkusz1. Możemy umieścić sekwencję również jako 1 zamiast pisać Arkusz1. A następnie wybierz zakres komórek, które musimy sformatować. Tutaj nasz zakres obejmuje komórki od A1 do B8.

Kod:

 Podrzędny arkusz roboczy_wybór_wyboru (docelowy ByVal jako zakres) Dim MyRange As Range Set MyRange = arkusze („Arkusz1”). Range („A1: B8”) End Sub 

Krok 6: Teraz otwórz pętlę For Each-Next, jak pokazano poniżej. Rozpocznij od wybrania zmiennej MyRange zdefiniowanej dla komórki .

Kod:

 Podrzędny arkusz roboczy_wybór_wyboru (docelowy ByVal jako zakres) Dim MyRange As Range Set MyRange = Arkusze robocze („Arkusz1”). Zakres („A1: B8”) Dla każdej komórki w MyRange Następny koniec Sub 

Krok 7: Teraz ponownie otwórz pętlę If-Else.

Kod:

 Podrzędny arkusz roboczy_wybór_wyboru (docelowy ByVal jako zakres) Dim MyRange As Range Set MyRange = Arkusze robocze („Arkusz1”). Zakres („A1: B8”) Dla każdej komórki w MyRange Jeśli koniec, jeśli następny koniec Sub 

Jest to region, w którym przypisalibyśmy kolory wszystkim cyfrom i alfabetom dostępnym w naszym asortymencie.

Krok 8: Napisz kod, jeśli wartość komórki to 1, a następnie - Kolor wewnętrzny, wybrana komórka zakresu od A1 do B8 będzie miała kolor zielony. A dla zieleni mamy przypisany mu kod koloru jako 6.

Kod:

 Prywatny pod arkusz roboczy_wybór_wyboru (docelowy byVal jako zakres) Dim MyRange As Range Set MyRange = arkusze robocze („Arkusz1”). Range („A1: B8”) Dla każdej komórki w MyRange Jeśli Cell.Value jak „1” Następnie Cell.Interior.ColorIndex = 6 Koniec, jeśli następny koniec Sub 

Krok 9: Teraz dla wartości komórki nr 2. W przeciwnym razie, jeśli wartość komórki dowolnej komórki z wybranego zakresu wynosi 2, wówczas kolor wnętrza tej komórki będzie żółty. A dla żółtego mamy przypisany kod koloru jako 4.

Kod:

 Prywatny pod arkusz roboczy_wybór_wyboru (docelowy byVal jako zakres) Dim MyRange As Range Set MyRange = arkusze robocze („Arkusz1”). Range („A1: B8”) Dla każdej komórki w MyRange Jeśli Cell.Value jak „1” Następnie Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Następnie Cell.Interior.ColorIndex = 4 Koniec jeśli następny koniec Sub 

Dla każdego koloru mamy przypisane różne kody kolorów, które zaczynają się od 1 do 56. Podczas gdy kod numeryczny 1 jest przypisany do koloru czarnego, a numer 56 jest przypisany do koloru ciemnoszarego. W międzyczasie mamy różne inne odcienie kolorów, które możemy znaleźć w Microsoft Documents.

Krok 10: Jeśli którykolwiek z powyższych

warunek ma wartość FAŁSZ, wówczas mielibyśmy inny błąd, jeśli warunek, w którym jeśli wartość komórki to A, wówczas kolor wnętrza komórki będzie żółty. A dla żółtego ponownie przypiszemy kod jako 6.

Kod:

 Prywatny pod arkusz roboczy_wybór_wyboru (docelowy byVal jako zakres) Dim MyRange As Range Set MyRange = arkusze robocze („Arkusz1”). Range („A1: B8”) Dla każdej komórki w MyRange Jeśli Cell.Value jak „1” Następnie Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Następnie Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Następnie Cell.Interior.ColorIndex = 6 Koniec jeśli następny koniec Sub 

Krok 11: Zrób to samo dla wartości komórki B, z kodem koloru 4 jako Zielony.

Kod:

 Prywatny pod arkusz roboczy_wybór_wyboru (docelowy byVal jako zakres) Dim MyRange As Range Set MyRange = arkusze robocze („Arkusz1”). Range („A1: B8”) Dla każdej komórki w MyRange Jeśli Cell.Value jak „1” Następnie Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Następnie Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Następnie Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Następnie Cell.Interior.ColorIndex = 4 End If Next End Sub 

Krok 12: Jeśli którykolwiek z warunków nie jest PRAWDZIWY, w przeciwnym razie wolimy wybrać kod koloru jako Brak .

Kod:

 Podrzędny arkusz roboczy_wybór_wyboru (docelowy ByVal jako zakres) Dim MyRange As Range Set MyRange = Arkusze robocze („Arkusz1”). Range („A1: B8”) Dla każdej komórki w MyRange If Cell.Value Like „1” Następnie Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Następnie Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Następnie Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Następnie Cell.Interior.ColorIndex = 4 Else Cell.Ineterios.ColorIndex = xl Brak końca Jeśli następny koniec Sub 

Krok 13: Ponieważ kod jest duży, aby skompilować każdy krok kodu, naciśnij klawisz funkcyjny F8. Jeśli nie znaleziono błędu, kliknij przycisk odtwarzania, aby uruchomić cały kod za jednym razem. Zobaczymy, zgodnie z regułą formatowania warunkowego zdefiniowaną w kodzie VBA, kolor komórek został zmieniony na wybrane kody kolorów, jak pokazano poniżej.

Krok 14: To formatowanie jest teraz naprawione. Jeśli chcemy zobaczyć zmiany koloru, w celu przetestowania zmieńmy wartość dowolnej komórki, rozważmy A1 z 1 na 2. Zobaczymy, kolor komórki A1 zmieni się na zielony.

Jest tak, ponieważ zadeklarowaliśmy, że w zakresie od A1 do B8 każda komórka zawierająca cyfry 1 i 2 oraz alfabety A i B będzie sformatowana na kolor żółty i zielony, jak pokazano w komórkach D2 do E3.

Plusy i minusy

  • Daje natychmiastowy efekt, jeśli mamy ogromne dane. Podczas gdy zastosujemy to samo z opcji menu Excel, wyczyszczenie formatowania zestawu dużych danych zajmie trochę czasu.
  • Możemy wykonywać wszystkie typy funkcji, które są dostępne w programie Excel do formatowania warunkowego w VBA.
  • Nie zaleca się stosowania formatowania warunkowego VBA w przypadku niewielkiego zestawu danych.

Rzeczy do zapamiętania

  • Istnieje wiele innych funkcji oprócz podświetlania duplikatów i tych samych komórek wartości. Możemy zmienić format komórki w jakikolwiek sposób, np. Pogrubienie, kursywa, zmiana koloru czcionki, zmiana koloru tła, wyróżnienie wartości w określonym zakresie.
  • Po zastosowaniu formatowania warunkowego możemy zmienić regułę, możemy też usunąć warunki formatowania. Aby nasze dane wróciły do ​​normy.
  • Możemy zastosować więcej niż jeden warunek w jednym makrze.

Polecane artykuły

Jest to przewodnik po formatowaniu warunkowym VBA. Tutaj omawiamy, jak korzystać z funkcji formatowania warunkowego Excel VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Funkcja kopiuj wklej w VBA
  2. Funkcja Excel podciągu
  3. Indeks dolny VBA poza zakresem
  4. Formuła Excel ISNUMBER
  5. Formatowanie warunkowe dla dat w programie Excel

Kategoria: