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

Cum se schimbă culoarea filei de foaie pe baza valorii celulei?

În mod normal, puteți schimba culoarea filelor ușor și rapid în Excel, dar ați încercat vreodată să schimbați culoarea filelor pe baza valorii celulei dintr-o foaie de lucru? Dacă sunteți interesat de această sarcină, voi vorbi despre câteva coduri pentru ca dvs. să colorați fila de foaie pe baza unei valori specifice a celulei din Excel.

Schimbați culoarea filei unei foi pe baza valorii celulei cu codul VBA

Schimbați mai multe file de foi pe baza valorii celulei cu codul VBA


săgeată albastru dreapta balon Schimbați culoarea filei unei foi pe baza valorii celulei cu codul VBA

De exemplu, vreau ca culoarea filelor curente a foii să fie verde dacă valoarea celulei din A1 este textul „ADEVĂRAT”, culoarea filelor va fi roșie dacă textul din A1 este „FALS”, iar culoarea filelor va fi albastră dacă valoarea din celula A1 este orice alt text, după cum se arată în următoarea captură de ecran:

foaie de culoare doc după valoarea 1

1. Faceți clic dreapta pe fila de foaie pe care doriți să-i modificați culoarea pe baza datelor din celula A1, apoi alegeți Afișați codul din meniul contextual.

2. În Microsoft Visual Basic pentru aplicații fereastră, copiați și lipiți codul VBA de mai jos în Module fereastră.

Cod VBA: Modificați culoarea filei unei foi pe baza valorii celulei:

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

foaie de culoare doc după valoarea 2

Notă: În codul de mai sus, A1 este referința celulei pe care doriți să colorați fila pe baza „Adevărat","Fals”Sunt textul de care ai nevoie, le poți schimba în funcție de nevoile tale și poți schimba culoarea din cod după cum ai nevoie.

3. Apoi salvați și închideți această fereastră de cod, acum, când introduceți textul „Adevărat” în celula A1, culoarea curentă a filei va deveni verde, iar când introduceți textul „Fals” în celula A1, culoarea filei va deveni roșie, iar dacă se introduce alt text în celula A1, culoarea filelor va deveni albastră automat.


săgeată albastru dreapta balon Schimbați mai multe file de foi pe baza valorii celulei cu codul VBA

Dacă trebuie să schimbați culoarea filelor cu mai multe foi pe baza unei valori a celulei, iată și un cod care vă poate ajuta, faceți următoarele:

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră, în fereastra deschisă, faceți dublu clic Acest manual de lucru în temeiul Proiect VBA , apoi copiați și lipiți codul de mai jos în spațiul gol Module:

Cod VBA: Modificați mai multe file de foi pe baza valorii celulei:

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

foaie de culoare doc după valoarea 3

Notă: În codul de mai sus, A1 și Master sunt celula și foaia de lucru pe care doriți să colorați fila în funcție de, Sheet1, Sheet2, Sheet3 sunt foile de lucru pe care doriți să le colorați filelor. KTE, KTW, OMS sunt valorile celulei din A1 pe care doriți să colorați filele pe baza, puteți modifica referințele și culorile din cod după cum aveți nevoie.

2. Apoi salvați și închideți această fereastră de cod, acum, când introduceți textul KTE în celula A1 a foii principale, fila Sheet1 va fi colorată în roșu, când introduceți KTO în celula A1, Sheet2 va fi colorată în verde și când introduceți KTW în celula A1, Sheet3 va fi colorată în albastru, vedeți captura de ecran:

foaie de culoare doc după valoarea 4


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (23)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Stimate domn.
Vă rog să mă ajutați cum să schimb culoarea filei foii în funcție de dată/zi.

pentru ex:-
dacă foaia nr. 1 este duminică, atunci - fila foii „ROȘU”
dacă foaia nr. 2 este luni, atunci - fila foii „Verde”
dacă foaia nr. 3 este marți, atunci - fila foii „Verde”
dacă foaia nr. 4 este miercuri, atunci - fila foii „Verde”
dacă foaia nr. 5 este joi, atunci - fila foii „Verde”
dacă foaia nr. 6 este vineri, atunci - fila foii „Verde”
dacă foaia nr. 7 este sâmbătă, atunci - fila foii „Verde”

Vă rog să mă ajutați pentru problema excel de mai sus.

Vă mulțumim și ceea ce privește
Faiz Ibn Uvaiz P.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Descrierea ta este puțin vagă în ceea ce privește ceea ce încerci de fapt să faci. Dacă registrul de lucru este doar pentru o săptămână, atunci colorați filele. Dacă durata este mai mare de o săptămână, atunci soluția este puțin mai complexă. Până nu detaliați problema, există mai multe soluții disponibile. Eu și mulți oameni nu ne vom petrece timpul codând 2,000 de soluții pentru dvs. gratuit. Dar detaliați problema, am putea oferi o soluție.
Acest comentariu a fost redus la minimum de moderatorul de pe site
cum pot schimba culoarea unei file în funcție de vreme, o serie de celule au text în ele
Acest comentariu a fost redus la minimum de moderatorul de pe site
Formula funcționează pentru „Adevărat” - fila foii este ROȘU, deci este grozav, dar dacă o schimb de la „Adevărat” la „Fals”, vreau ca fila foii să aibă „fără culoare”. Care este formula pentru nicio culoare în fila foaie dacă nu este selectat „Adevărat”? De asemenea, dacă vreau ca formula să fie pentru un grup de celule de ex. A1:A30 care este codul pe care îl folosesc?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Shannon:
Următorul cod VBA vă poate face o favoare, vă rugăm să-l încercați:

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xRg As Range
Set xRg = Intersect(Target, Range("A1:A30"))
Dacă xRg nu este nimic, ieșiți din sub
Selectați Case Target.Value
Cazul „Adevărat”
Me.Tab.Color = vbRed
Cazul „fals”
Me.Tab.Color = False
Selectare sfârșit
End Sub

Sper că acest lucru vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o modalitate de a face ca culoarea filei să se schimbe pe baza următoarelor: Am o filă principală în care rândurile 3-7 sunt colorate în albastru și vor corespunde cu filele corespunzătoare 3-7 (care sunt denumite pe baza valorilor celulelor din master în acele rânduri) pe care mi-aș dori colorate în albastru. Apoi, rândurile 8-12 sunt colorate în verde și corespund, de asemenea, filelor 8-12 și așa mai departe.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acesta a fost un truc minunat.
Am legat culoarea filei pe baza valorii celulei A1 (<>0 RED și =0 Green), cu toate acestea, macro-ul se execută numai dacă selectez A1, apăsați F2 și apoi apăsați Enter. Fără a face acest lucru, deși culoarea filei (pe baza valorii sale) ar trebui să fie, să spunem roșu, dar rămâne verde.
Folosesc excel 2007.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este posibil să funcționeze când celula A1 poate avea toate cele 3 răspunsuri pe linii separate în interiorul celulei? Adică, KTE, KTO și KTW sunt toate prezente în celulă, deoarece permite selecții multiple dintr-o listă derulantă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încerc să folosesc acel cod și să-l aplic unei casete de selectare, așa că atunci când bifez caseta, culoarea se schimbă, dacă o debifez, se schimbă înapoi (am primit true=verde, false=roșu, altfel=roșu) . Dar când verific și debifează, apare o eroare „obiect necesar”


Private Sub CheckBox1_Click()
_____Dacă Target.Address = „$e$5” Atunci „eroare aici”.
__________Selectați Cazul țintă.Valoare
__________Caz "fals"
_______________Me.Tab.Color = vbRed
__________Caz "Adevărat"
_______________Me.Tab.Color = vbGreen
__________Caz Altceva
_______________Me.Tab.Color = vbRed
__________Încheierea selectării
_____Terminați dacă
End Sub

L-am copiat și lipit pentru a vedea cum rulează și apoi l-am ajustat la nevoile mele, dar nu aș găsi o modalitate de a-l face să ruleze.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragi colegi,
Vă rugăm să cereți ajutor. Trebuie să schimb culoarea filei foii pe baza valorii în format [h]:mm. De exemplu, dacă valoarea este sub 20:00 - roșu, >20:00 verde.
Multumesc si salutari!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragi colegi,
Vă rugăm să cereți ajutor. Trebuie să schimb culoarea filei foii pe baza valorii în format [h]:mm. De exemplu, dacă valoarea este sub 20:00 - roșu, >20:00 verde.
Multumesc si salutari!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut, Victor,
Codul VBA de mai jos vă poate rezolva problema, vă rugăm să încercați, sper că vă poate ajuta!

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xStr As String
Dim xSN ca șir
Dim xDate As String
Dim xAddress ca șir
Dim xArr() As String
Dim xI1 ca întreg
Dim xSM ca șir
xDate = "20:00"
xAdresă = „$A$1”
Dacă Target.Address <> xAddress, apoi Exit Sub
xStr = Target.Text
xArr = Split(xStr, ":")
Dacă (UBound(xArr) - LBound(xArr) + 1) > 2, atunci ieșiți din sub
xI1 = Int(xArr(0))
Dacă (Len(xArr(0)) - 2) < 1 Atunci
Dacă xI1 > 23 Atunci Ieșiți din sub
Altfel
Ieșiți din Sub
Final, dacă
xSM = xArr(1)
La eroare GoTo Err01
Dacă (Len(xSM) - 2) <> 0 Atunci Ieșiți din sub
Dacă Int(Left(xSM, 1)) > 5, Ieșiți Sub
Dacă Int(Dreapta(xSM, 1)) > 10, atunci Ieșiți din sub
Dacă xI1 >= 20 Atunci
Me.Tab.Color = vbGreen
Altfel
Me.Tab.Color = vbRed
Final, dacă
Err01:
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Skyyang,
Scuze pentru feedback-ul prea târziu. Această formulă funcționează când schimb manual valoarea din celulă. Dar nu de asta aveam nevoie.
Valoarea celulei este rezultatul unei formule din foile de diferențe. De exemplu, aceasta este formula din celula „O13-’520’!AD3”. Aceasta înseamnă că valoarea din această celulă se modifică în funcție de valoarea celulei deferente din foaia deferentă. Ceea ce am nevoie este ca culoarea foii să fie schimbată automat atunci când valoarea din celula "O13-'520'!AD3" este schimbată, când valoarea din celula "O13-'520'!AD3" este sub 05:00 - roșu , >20:00 verde, între orele 05:00 și 20:00 maro.
Vă mulțumesc anticipat și vă salut!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună tuturor, cum schimb culoarea filei pe baza unei anumite valori din coloana mai multor foi? Mulțumiri
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum ați lega fila la o valoare dintr-o altă filă. În exemplul meu, am o filă cu toate informațiile care se filtrează automat în diferite file. Cu toate acestea, fiecare filă va citi verde sau roșu, în funcție de dacă există un sold restante pe fila principală. Se poate face acest lucru folosind acest cod și, dacă da, unde pot scrie linkul către foaia principală din acest cod?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna,

Nu am făcut niciodată cod în excel înainte. Am nevoie de un cod care să facă ceea ce face acest cod, dar am nevoie de un alt parametru.

Deci ceea ce am nevoie este:

Dacă valoarea celulei nu este 0 și/sau dacă altă celulă are numere în ea, folosind count, atunci schimbați culoarea în roșu

Dacă valoarea celulei este 0 și celelalte celule sunt goale, folosind count, atunci schimbați culoarea în verde
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, Am încercat să schimb culoarea filei pe baza valorii pe o foaie separată numită Urmărire, dar nu pare să funcționeze. Mulțumiri




Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)

'Actualizare de Extendoffice 20160930

Dacă Target.Address = „Urmărire!$C$2” Atunci

Selectați Case Target.Value

Cazul „ip”

Me.Tab.Color = vbRed

Cazul „w”

Me.Tab.Color = vbYellow

Cazul „c”

Me.Tab.Color = vbGreen

Alt caz

Me.Tab.Color = vbBlue

Selectare sfârșit

Final, dacă

End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Brad,
Pentru ca codul să ruleze corect, nu trebuie să introduceți numele foii în cod, vă rugăm să aplicați următorul cod: (faceți clic pe numele foii pe care doriți să rulați acest cod, apoi faceți clic dreapta pe numele foii și alegeți Vizualizare cod, apoi inserați codul în modul)

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)

'Actualizare de Extendoffice 20160930

Dacă Target.Address = „$C$2” Atunci

Selectați Case Target.Value

Cazul „ip”

Me.Tab.Color = vbRed

Cazul „w”

Me.Tab.Color = vbYellow

Cazul „c”

Me.Tab.Color = vbGreen

Alt caz

Me.Tab.Color = vbBlue

Selectare sfârșit

Final, dacă

End Sub

Vă rugăm să încercați, sper că vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Caut să schimb culoarea filei pe baza unuia dintre cele 2 rezultate ale unei formule. Am o formulă de=IF((AND(AA1="Ocupat",AA2="Ocupat",AA3="Ocupat",AA4=") Ocupat")),"Ocupat","Vacant")
Am nevoie ca fila să fie roșie dacă „Ocupat” și verde dacă „Vacant”. Cu toate acestea, codul de mai sus din postarea principală nu recunoaște rezultatul If Than
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,
Am nevoie de ceva ajutor
Trebuie să schimb culoarea filei foii numai dacă într-un anumit interval de celule, are data de astăzi
Spune, de exemplu,
Coloana L are câteva date în format (13-mai-22)
Una dintre valorile celulei este data de astăzi, apoi culoarea foii de filă ar trebui să se schimbe în roșu
Te rog ajuta-ma
Va multumesc anticipat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aș dori ca fila mea să își schimbe culoarea dacă orice celulă din coloana O sau coloana P are o valoare în ea. Este posibil?

Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vreau să setez culoarea filei foii pe baza culorii celulei j4 din fiecare foaie. Există peste 18 file și doriți să actualizați culorile filelor atunci când registrul de lucru este deschis. Dacă nu pot actualiza la deschidere, pot rula macro-ul după ce echipele actualizează foile.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, lemne
Pentru a vă rezolva problema, vă rugăm să aplicați codul de mai jos: (notițe: Copiați și inserați codul de mai jos în Acest manual de lucru modul cod)
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

Vă rugăm să încercați, sper că vă poate ajuta!
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL