Note: The other languages of the website are Google-translated. Back to English

Jak zmienić kolor karty arkusza na podstawie wartości komórki?

Zwykle możesz łatwo i szybko zmienić kolor karty w programie Excel, ale czy kiedykolwiek próbowałeś zmienić kolor karty na podstawie wartości komórki w arkuszu? Jeśli jesteś zainteresowany tym zadaniem, opowiem o niektórych kodach, aby pokolorować kartę arkusza na podstawie określonej wartości komórki w programie Excel.

Zmień kolor karty jednego arkusza na podstawie wartości komórki z kodem VBA

Zmień wiele kart arkuszy na podstawie wartości komórki z kodem VBA


strzałka niebieski prawy bąbelek Zmień kolor karty jednego arkusza na podstawie wartości komórki z kodem VBA

Na przykład chcę, aby bieżący kolor karty arkusza był zielony, jeśli wartość komórki w A1 to tekst „PRAWDA”, kolor karty będzie czerwony, jeśli tekst w A1 to „FAŁSZ”, a kolor karty będzie niebieski, jeśli Wartość w komórce A1 to dowolny inny tekst, jak pokazano na poniższym zrzucie ekranu:

arkusz kolorów doc według wartości 1

1. Kliknij prawym przyciskiem myszy kartę arkusza, którego kolor chcesz zmienić na podstawie danych w komórce A1, a następnie wybierz Wyświetl kod z menu kontekstowego.

2, w Microsoft Visual Basic for Applications okno, skopiuj i wklej poniższy kod VBA do pliku Moduł okno.

Kod VBA: Zmień kolor karty jednego arkusza na podstawie wartości komórki:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    If Target.Address = "$A$1" Then
        Select Case Target.Value
        Case "False"
            Me.Tab.Color = vbRed
        Case "True"
            Me.Tab.Color = vbGreen
        Case Else
            Me.Tab.Color = vbBlue
        End Select
    End If
End Sub

arkusz kolorów doc według wartości 2

Uwaga: W powyższym kodzie A1 to odwołanie do komórki, na podstawie którego chcesz pokolorować kartę, „Prawdziwy","Fałszywy”To tekst, którego potrzebujesz, możesz zmienić go według swoich potrzeb i możesz zmienić kolor w kodzie według potrzeb.

3. Następnie zapisz i zamknij to okno kodu, teraz, gdy wpiszesz tekst „True” w komórce A1, bieżący kolor zakładki zmieni kolor na zielony, a kiedy wpiszesz tekst „False” w komórce A1, kolor zakładki zmieni się na czerwony, a jeśli inny tekst zostanie wprowadzony do komórki A1, kolor karty automatycznie zmieni kolor na niebieski.


strzałka niebieski prawy bąbelek Zmień wiele kart arkuszy na podstawie wartości komórki z kodem VBA

Jeśli chcesz zmienić kolor wielu kart arkuszy na podstawie wartości komórki, tutaj również kod może Ci pomóc, wykonaj następujące czynności:

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno, w otwartym oknie kliknij dwukrotnie Ten zeszyt pod Projekt VBA , a następnie skopiuj i wklej poniższy kod w puste miejsce Moduł:

Kod VBA: zmień wiele kart arkuszy na podstawie wartości komórki:

Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  'Updateby Extendoffice 20160930
  Select Case Sheets("Master").Range("A1").Value
         Case "KTE"
             Sheets("Sheet1").Tab.Color = vbRed
         Case "KTO"
             Sheets("Sheet2").Tab.Color = vbGreen
         Case "KTW"
             Sheets("Sheet3").Tab.Color = vbBlue
         End Select
End Sub

arkusz kolorów doc według wartości 3

Uwaga: W powyższym kodzie A1 a Master to komórka i arkusz roboczy, na podstawie których chcesz pokolorować kartę, Sheet1, Sheet2, Sheet3 to arkusze robocze, dla których chcesz pokolorować karty. KTE, KTW, KTO to wartości komórek w komórce A1, na podstawie których chcesz pokolorować karty, możesz zmienić odwołania i kolory w kodzie według potrzeb.

2. Następnie zapisz i zamknij to okno kodu, teraz, kiedy wprowadzisz tekst KTE w komórce A1 arkusza wzorcowego, zakładka Arkusz1 będzie miała kolor czerwony, kiedy wprowadzisz KTO w komórce A1, Arkusz2 będzie pokolorowany na zielono, a kiedy wprowadzisz KTW w komórce A1, Sheet3 zostanie pokolorowany na niebiesko, patrz zrzut ekranu:

arkusz kolorów doc według wartości 4


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (23)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Szanowny Panie.
uprzejmie pomóż mi, jak zmienić kolor zakładki arkusza na podstawie daty / dnia.

dla Np.:-
jeżeli arkusz nr 1 to niedziela to - zakładka arkusza 'CZERWONY'
jeśli arkusz nr 2 jest poniedziałek to - zakładka arkusza 'Zielona'
jeśli arkusz nr 3 to wtorek to - zakładka arkusza 'Zielona'
jeżeli arkusz nr 4 to środa to - zakładka arkusza 'Zielona'
jeśli arkusz nr 5 jest czwartek to - zakładka arkusza 'Zielona'
jeśli arkusz nr 6 to piątek to - zakładka arkusza 'Zielona'
jeżeli arkusz nr 7 to sobota to - zakładka arkusza 'Zielona'

uprzejmie pomóż mi w powyższym problemie z programem Excel.

Dzięki i pozdrawiam
Faiz Ibn Uvaiz P.
Ten komentarz został zminimalizowany przez moderatora na stronie
Twój opis jest trochę niejasny co do tego, co faktycznie próbujesz zrobić. Jeśli skoroszyt jest przeznaczony tylko na tydzień, pokoloruj karty. Jeśli czas trwania jest dłuższy niż tydzień, rozwiązanie jest nieco bardziej złożone. Dopóki nie opiszesz problemu, dostępnych jest kilka rozwiązań. Ja i wiele osób nie spędzimy czasu na kodowaniu dla Ciebie 2,000 rozwiązań za darmo. Ale szczegółowo opisujesz problem, który możemy dostarczyć 1 rozwiązanie.
Ten komentarz został zminimalizowany przez moderatora na stronie
jak mogę zmienić kolor zakładki w zależności od pogody w wielu komórkach znajduje się tekst?
Ten komentarz został zminimalizowany przez moderatora na stronie
Formuła działa dla „Prawda” — karta arkusza jest CZERWONA, więc to świetnie, ale jeśli zmienię ją z „Prawda” na „Fałsz”, chcę, aby karta arkusza miała „brak koloru”. Jaka jest formuła braku koloru na karcie arkusza, jeśli nie wybrano opcji „Prawda”? Również jeśli chcę, aby formuła była dla grupy komórek np. A1: A30 jakiego kodu używam?
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam,Shannon:
Poniższy kod VBA może ci wyświadczyć przysługę, spróbuj go:

Prywatny Sub Worksheet_Change (ByVal Target As Range)
Dim xRg jako zakres
Ustaw xRg = Przecięcie(cel, zakres("A1:A30"))
Jeśli xRg jest niczym, wyjdź z Sub
Wybierz wartość docelową sprawy
Sprawa „Prawda”
Ja.Tab.Kolor = vbCzerwony
Sprawa „Fałsz”
Me.Tab.Color = Fałsz
End Select
End Sub

Mam nadzieję, że to może ci pomóc!
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy istnieje sposób na zmianę koloru karty w oparciu o następujące elementy: Mam kartę główną, w której wiersze 3-7 są pokolorowane na niebiesko i będą odpowiadać odpowiednim kartom 3-7 (które są nazwane na podstawie wartości komórek w te wiersze), które chciałbym pokolorować na niebiesko. Następnie rzędy 8-12 są pokolorowane na zielono i odpowiadają również zakładkom 8-12 i tak dalej.
Ten komentarz został zminimalizowany przez moderatora na stronie
To była niesamowita sztuczka.
Połączyłem kolor zakładki na podstawie wartości komórki A1 (<>0 RED i =0 Green), jednak makro jest wykonywane tylko wtedy, gdy wybiorę A1 , nacisnę F2, a następnie nacisnę enter. Bez robienia tego, chociaż kolor zakładki (w oparciu o jej wartość) powinien być, powiedzmy czerwony, ale pozostanie zielony.
Używam programu Excel 2007.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy jest to możliwe, gdy komórka A1 może mieć wszystkie 3 odpowiedzi w osobnych wierszach w komórce? Oznacza to, że KTE, KTO i KTW są obecne w komórce, ponieważ umożliwia wielokrotny wybór z rozwijanej listy.
Ten komentarz został zminimalizowany przez moderatora na stronie
Próbuję użyć tego kodu i zastosować go do pola wyboru, więc kiedy zaznaczę to pole, kolor się zmieni, jeśli go odznaczę, zmieni się z powrotem (mam true=green, false=red,else=red) . Ale kiedy zaznaczam i odznaczam, wyświetla błąd „wymagany obiekt”


Private Sub CheckBox1_Click ()
_____If Target.Address = "$e$5" Wtedy 'błąd tutaj
__________Wybierz docelową sprawę.Wartość
__________Przypadek „Fałsz”
_______________Ja.Tab.Kolor = vbCzerwony
__________Przypadek „Prawda”
_______________Ja.Tab.Kolor = vbZielony
__________Przypadek inny
_______________Ja.Tab.Kolor = vbCzerwony
__________Zakończ Wybierz
_____Koniec, jeśli
End Sub

Skopiowałem i wkleiłem go, aby zobaczyć, jak działa, a następnie dostosować go do moich potrzeb, ale nie znalazłbym sposobu, aby go uruchomić.
Ten komentarz został zminimalizowany przez moderatora na stronie
Drodzy koledzy,
Uprzejmie poproś o pomoc. Muszę zmienić kolor zakładki arkusza na podstawie wartości w formacie [h]:mm. Na przykład, jeśli wartość jest poniżej 20:00 - czerwony, >20:00 zielony.
Dziękuję i pozdrawiam!
Ten komentarz został zminimalizowany przez moderatora na stronie
Drodzy koledzy,
Uprzejmie poproś o pomoc. Muszę zmienić kolor zakładki arkusza na podstawie wartości w formacie [h]:mm. Na przykład, jeśli wartość jest poniżej 20:00 - czerwony, >20:00 zielony.
Dziękuję i pozdrawiam!
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj, Wiktorze,
Poniższy kod VBA może rozwiązać Twój problem, spróbuj, mam nadzieję, że Ci pomoże!

Prywatny Sub Worksheet_Change (ByVal Target As Range)
Dim xStr jako ciąg
Dim xSN jako ciąg
Dim xDate jako ciąg
Dim xAddress jako ciąg
Dim xArr() jako ciąg
Dim xI1 jako liczba całkowita
Dim xSM jako ciąg
xData = "20:00"
xAdres = "$A$1"
Jeśli Target.Address <> xAddress to wyjdź z Sub
xStr = Cel.Tekst
xArr = Split(xStr, ":")
Jeśli (UBound(xArr) - LBound(xArr) + 1) > 2 Następnie wyjdź z Sub
xI1 = Int(xAr(0))
Jeśli (Len(xArr(0)) - 2) < 1 Wtedy
Jeśli xI1 > 23 to wyjdź z Sub
Więcej
Exit Sub
End If
xSM = xArr(1)
W przypadku błędu Przejdź do Err01
Jeśli (Len(xSM) - 2) <> 0 To wyjdź z Sub
Jeśli Int(Left(xSM, 1)) > 5 to wyjdź z Sub
Jeśli Int(Right(xSM, 1)) > 10 to wyjdź z Sub
Jeśli xI1 >= 20 Wtedy
Ja.Tab.Kolor = vbZielony
Więcej
Ja.Tab.Kolor = vbCzerwony
End If
Błąd01:
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Drogi Skyyangu,
Przepraszamy za zbyt późną informację zwrotną. Ta formuła działa, gdy ręcznie zmieniam wartość w komórce. Ale to nie było to, czego potrzebuję.
Wartość komórki jest wynikiem formuły z arkuszy różnic. Na przykład jest to formuła w komórce „O13-'520'!AD3”. Oznacza to, że wartość w tej komórce zmienia się w zależności od wartości, w której znajduje się odroczona komórka w odmiennym arkuszu. Potrzebuję, aby kolor arkusza zmieniał się automatycznie, gdy zmieni się wartość w komórce „O13-'520'!AD3”, gdy wartość w komórce „O13-'520'!AD3” spadnie poniżej 05:00 - czerwony , >20:00 zielony, między 05:00 a 20:00 brąz.
Z góry dziękuję i pozdrawiam!
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam wszystkich, jak zmienić kolor zakładki na podstawie określonej wartości w kolumnie wielu arkuszy? Dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak powiązać zakładkę z wartością w innej zakładce. W moim przykładzie mam jedną kartę ze wszystkimi informacjami, które są automatycznie filtrowane do różnych kart. Jednak każda karta będzie miała kolor zielony lub czerwony, w zależności od tego, czy na karcie głównej jest zaległe saldo. Czy można to zrobić za pomocą tego kodu, a jeśli tak, to gdzie mam napisać link do arkusza wzorcowego w tym kodzie?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć,

Nigdy wcześniej nie robiłem kodu w programie Excel. Potrzebuję kodu, który robi to, co ten kod, ale potrzebuję innego parametru.

Potrzebuję więc:

Jeśli wartość komórki nie jest równa 0 i/lub jakaś inna komórka zawiera liczby, za pomocą funkcji liczenia zmień kolor na czerwony

Jeśli wartość komórki wynosi 0, a pozostałe komórki są puste, użyj licznika, a następnie zmień kolor na zielony
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj, Próbowałem zmienić kolor karty na podstawie wartości na oddzielnym arkuszu o nazwie Śledzenie, ale próbowałem, ale wydaje się, że nie działa. Dzięki




Prywatny Sub Worksheet_Change (ByVal Target As Range)

„Aktualizuj do” Extendoffice 20160930

Jeśli Target.Address = "Śledzenie!$C$2" Wtedy

Wybierz wartość docelową sprawy

Sprawa „ip”

Ja.Tab.Kolor = vbCzerwony

Przypadek „w”

Ja.Tab.Kolor = vbŻółty

Przypadek „c”

Ja.Tab.Kolor = vbZielony

Case Else

Ja.Tab.Kolor = vbNiebieski

End Select

End If

End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Brad,
Aby kod działał poprawnie, nie należy wstawiać nazwy arkusza do kodu, proszę zastosować następujący kod: (kliknij nazwę arkusza, w którym chcesz uruchomić ten kod, a następnie kliknij prawym przyciskiem myszy nazwę arkusza i wybierz Wyświetl kod, a następnie wklej kod do modułu)

Prywatny Sub Worksheet_Change (ByVal Target As Range)

„Aktualizuj do” Extendoffice 20160930

Jeśli Target.Address = "$C$2" Wtedy

Wybierz wartość docelową sprawy

Sprawa „ip”

Ja.Tab.Kolor = vbCzerwony

Przypadek „w”

Ja.Tab.Kolor = vbŻółty

Przypadek „c”

Ja.Tab.Kolor = vbZielony

Case Else

Ja.Tab.Kolor = vbNiebieski

End Select

End If

End Sub

Proszę spróbować, mam nadzieję, że może ci to pomóc!
Ten komentarz został zminimalizowany przez moderatora na stronie
Chcę zmienić kolor zakładki na podstawie jednego z 2 wyników formuły. Mam formułę = JEŻELI((AND(AA1="Zajęty",AA2="Zajęty",AA3="Zajęty",AA4=" Zajęte")), "Zajęte", "Wolne")
Potrzebuję, aby zakładka była czerwona, jeśli „Zajęty” i zielona, ​​jeśli „Wolny”. Jednak powyższy kod w głównym poście nie rozpoznaje wyjścia If Than
Ten komentarz został zminimalizowany przez moderatora na stronie
Hello,
potrzebuję pomocy
Muszę zmienić kolor zakładki arkusza tylko wtedy, gdy w określonym zakresie komórek ma dzisiejszą datę
Powiedz na przykład,
Kolumna L ma kilka dat w formacie (13-22 maja)
Jedna z wartości komórki to dzisiejsza data, kolor karty powinien zmienić się na czerwony
Proszę pomóż
Z góry dziękuję
Ten komentarz został zminimalizowany przez moderatora na stronie
Chciałbym, aby moja karta zmieniła kolor, jeśli jakakolwiek komórka w kolumnie O lub kolumnie P ma w sobie wartość. czy to możliwe?

Dziękuję Ci!
Ten komentarz został zminimalizowany przez moderatora na stronie
Chcę ustawić kolor karty arkusza na podstawie koloru komórki j4 w każdym arkuszu. Istnieje ponad 18 kart i chcesz zaktualizować kolory kart po otwarciu skoroszytu. Jeśli nie mogę zaktualizować po otwarciu, mogę uruchomić makro po aktualizacji arkuszy przez zespoły.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, drewno
Aby rozwiązać problem, zastosuj poniższy kod: (Uwagi: Skopiuj i wklej poniższy kod do Ten zeszyt tryb kodu)
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Call SetSheetColor
End Sub

Private Sub Workbook_Open()
Call SetSheetColor
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Call SetSheetColor
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Call SetSheetColor
End Sub

Sub SetSheetColor()
Dim xWShs As Sheets
Dim xRg As Range
Dim xFNum As Integer
Dim xSh As Worksheet
On Error Resume Next
Set xWShs = Application.ActiveWorkbook.Sheets
For xFNum = 1 To xWShs.Count
    Set xSh = xWShs.Item(xFNum)
    Set xRg = xSh.Range("J4")
    xSh.Tab.Color = xRg.Interior.Color
Next
End Sub


https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-color-sheet.png

Proszę spróbować, mam nadzieję, że może ci to pomóc!
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL