Բաց թողնել հիմնական բովանդակությունը

Ինչպե՞ս փոխել թերթիկի ներդիրի գույնը ՝ ելնելով բջջային արժեքից:

Սովորաբար, Excel- ում դուք կարող եք հեշտությամբ և արագ փոխել ներդիրի գույնը, բայց երբևէ փորձե՞լ եք փոխել էջանիշի գույնը `հիմնվելով աշխատանքային թերթի բջիջների արժեքի վրա: Եթե ​​ձեզ հետաքրքրում է այս առաջադրանքը, ես կխոսեմ որոշ կոդերի մասին, որպեսզի դուք գունավորեք թերթիկի ներդիրը ՝ հիմնված Excel- ում բջջի որոշակի արժեքի վրա:

Փոխեք մեկ թերթիկի ներդիրի գույնը `հիմնվելով բջջային արժեքի վրա, VBA կոդով

Փոխեք բազմաթիվ թերթիկների ներդիրները ՝ հիմնված բջջային արժեքի վրա, VBA կոդով


նետ կապույտ աջ պղպջակ Փոխեք մեկ թերթիկի ներդիրի գույնը `հիմնվելով բջջային արժեքի վրա, VBA կոդով

Օրինակ, ես ուզում եմ, որ ներկայիս թերթիկի ներդիրի գույնը կանաչ լինի, եթե A1- ում բջջային արժեքը լինի «UEՇՄԱՐԻՏ», ներդիրի գույնը կարմիր կլինի, եթե A1- ի տեքստը «ՍՈՒՏ» է, իսկ ներդիրի գույնը կլինի կապույտ, եթե A1 բջիջի արժեքը ցանկացած այլ տեքստ է, ինչպես ցույց է տրված հետևյալ նկարը.

doc գույնի թերթ ըստ արժեքի 1

1, Աջ կտտացրեք այն թերթիկի ներդիրին, որը ցանկանում եք փոխել դրա գույնը ՝ հիմնվելով A1 բջիջի տվյալների վրա, ապա ընտրեք Դիտել կոդը համատեքստի ընտրացանկից:

2, Մեջ Microsoft Visual Basic հավելվածների համար պատուհանը, պատճենեք և տեղադրեք ներքևի VBA կոդը ՝ Մոդուլներ պատուհան.

VBA կոդ. Փոխեք մեկ թերթիկի ներդիրի գույնը `ելնելով բջջային արժեքից.

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

doc գույնի թերթ ըստ արժեքի 2

Նշում: Վերոնշյալ ծածկագրում A1 այն բջջային տեղեկանքն է, որի հիման վրա ցանկանում եք գունավորել ներդիրը.Ճիշտ","Կեղծ”Ձեր համար անհրաժեշտ տեքստն է, դուք կարող եք դրանք փոխել ձեր պահանջի համաձայն և ծածկագրի գույնը կարող եք փոխել ըստ ձեզ:

3, Ապա պահեք և փակեք այս ծածկագրի պատուհանը, այժմ, երբ A1 բջիջում մուտքագրեք «Trիշտ» տեքստը, ներդիրի ներկայիս գույնը կդառնա կանաչ, և երբ A1 բջիջում մուտքագրեք «Սխալ» տեքստ, ներդիրի գույնը կդառնա կարմիր, և եթե այլ տեքստ մուտքագրվի A1 բջիջ, ներդիրի գույնը ավտոմատ կդառնա կապույտ:


նետ կապույտ աջ պղպջակ Փոխեք բազմաթիվ թերթիկների ներդիրները ՝ հիմնված բջջային արժեքի վրա, VBA կոդով

Եթե ​​Ձեզ անհրաժեշտ է փոխել բազմաշերտ ներդիրների գույնը ՝ հիմնվելով բջջային արժեքի վրա, ահա նաև մի կոդ, որը կարող է օգնել ձեզ, խնդրում ենք կատարել հետևյալը.

1, Պահեք պահեք ALT + F11 բացել ստեղները Microsoft Visual Basic հավելվածների համար պատուհանը, բացված պատուհանում կրկնակի սեղմեք Այս գործառույթը տակ VBAP նախագիծ բաժինը, ապա պատճենեք և կպցրեք ներքևի կոդը դատարկի մեջ Մոդուլներ:

VBA կոդ. Բջջային արժեքի հիման վրա փոխեք բազմաթիվ թերթի ներդիրները.

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

doc գույնի թերթ ըստ արժեքի 3

Նշում: Վերոնշյալ ծածկագրում A1 և Master- ը բջիջն ու աշխատանքային թերթն են, որոնց վրա ցանկանում եք գունավորել ներդիրը, Sheet1, Sheet2, Sheet3 այն աշխատանքային թերթերն են, որոնք ցանկանում եք գունավորել ներդիրները: KTE, KTW, ԱՀԿ- A1- ի բջջային արժեքներն են, որոնց հիման վրա ցանկանում եք գունավորել ներդիրները, կարող եք փոխել ծածկագրում նշված տեղեկությունները և գույները, որքան ձեզ հարկավոր է:

2, Դրանից հետո պահեք և փակեք այս կոդերի պատուհանը, հիմա, երբ Master թերթի A1 բջիջում մուտքագրեք KTE տեքստը, Sheet1 ներդիրը գունավորվի կարմիրով, երբ A1 բջիջում մուտքագրեք KTO, Sheet2- ը գունավորվի կանաչով, և երբ Դուք մուտք եք գործում KTW բջիջ A1- ում, Sheet3- ը գունավորվելու է կապույտով, տես նկարի նկարը.

doc գույնի թերթ ըստ արժեքի 4

Գրասենյակի արտադրողականության լավագույն գործիքները

🤖 Kutools AI օգնականՀեղափոխություն կատարել տվյալների վերլուծության հիման վրա՝ Խելացի կատարում   |  Ստեղծեք ծածկագիր  |  Ստեղծեք հատուկ բանաձևեր  |  Վերլուծել տվյալները և ստեղծել գծապատկերներ  |  Invoke Kutools-ի գործառույթները...
Հանրաճանաչ հատկություններ: Գտեք, ընդգծեք կամ նույնականացրեք կրկնօրինակները   |  Deleteնջել դատարկ շարքերը   |  Միավորել սյունակները կամ բջիջները՝ առանց տվյալների կորստի   |   Կլոր առանց բանաձևի ...
Super Փնտրել: Բազմաթիվ չափանիշների VLookup    Բազմակի արժեք VLookup  |   VLookup բազմաթիվ թերթերում   |   Fuzzy Փնտրել ....
Ընդլայնված բացվող ցուցակ: Արագ ստեղծեք բացվող ցուցակը   |  Կախված բացվող ցուցակ   |  Բազմակի ընտրություն Drop Down ցուցակ ....
Սյունակի կառավարիչ: Ավելացրեք որոշակի քանակությամբ սյունակներ  |  Տեղափոխել սյունակները  |  Փոխարկել թաքնված սյունակների տեսանելիության կարգավիճակը  |  Համեմատեք միջակայքերը և սյունակները ...
Առանձնահատկություններ: Ցանցի կենտրոնացում   |  Դիզայնի տեսք   |   Մեծ Formula Bar    Աշխատանքային գրքույկի և թերթիկների կառավարիչ   |  Ռեսուրսների գրադարան (Ավտոմատ տեքստ)   |  Ամսաթիվ ընտրող   |  Միավորել աշխատանքային թերթերը   |  Գաղտնագրել/գաղտնազերծել բջիջները    Ուղարկեք նամակներ ըստ ցանկի   |  Սուպեր զտիչ   |   Հատուկ զտիչ (զտել թավ/շեղ/շեղված...) ...
Լավագույն 15 գործիքների հավաքածու12 Տեքստ Գործիքներ (Ավելացրեք տեքստ, Հեռացնել նիշերը, ...)   |   50+ Աղյուսակ Տեսակներ (Գանտի աղյուսակը, ...)   |   40+ Գործնական Բանաձեւեր (Հաշվարկել տարիքը ՝ ելնելով ծննդյան տարեդարձից, ...)   |   19 միացում Գործիքներ (Տեղադրեք QR կոդ, Տեղադրեք նկար ուղուց, ...)   |   12 Փոխարկում Գործիքներ (Բառեր համարներ, Արտարժույթի փոխակերպումը, ...)   |   7 Միաձուլում և պառակտում Գործիքներ (Ընդլայնված կոմբինատ տողեր, Պառակտված բջիջներ, ...)   |   ... եւ ավելին

Լրացրեք ձեր Excel-ի հմտությունները Kutools-ի հետ Excel-ի համար և փորձեք արդյունավետությունը, ինչպես երբեք: Kutools-ը Excel-ի համար առաջարկում է ավելի քան 300 առաջադեմ առանձնահատկություններ՝ արտադրողականությունը բարձրացնելու և ժամանակ խնայելու համար:  Սեղմեք այստեղ՝ Ձեզ ամենաշատ անհրաժեշտ հատկանիշը ստանալու համար...

Նկարագրություն


Office Tab- ը Tabbed ինտերֆեյսը բերում է Office, և ձեր աշխատանքը շատ ավելի դյուրին դարձրեք

  • Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
  • Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
  • Բարձրացնում է ձեր արտադրողականությունը 50%-ով և նվազեցնում մկնիկի հարյուրավոր սեղմումները ձեզ համար ամեն օր:
Comments (28)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I want every tab to turn Red if G18 is greater than 100. Could someone help me write this code?
This comment was minimized by the moderator on the site
Hello, Lesa,

To modify the code so that when the value in G18 exceeds 100, the color of all worksheet tabs is set to red, you need to implement this functionality in the ThisWorkbook event, not in the Worksheet_Change event of a single worksheet.
1. Open the VBA editor (Alt + F11).
2. In the Project Explorer, find the ThisWorkbook object and double-click to open it.
3. Copy and paste the following code into the code window of ThisWorkbook:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Not Intersect(Target, Sh.Range("G18")) Is Nothing Then
        Dim ws As Worksheet
        If Sh.Range("G18").Value > 100 Then
            For Each ws In ThisWorkbook.Worksheets
                ws.Tab.Color = RGB(255, 0, 0)
            Next ws
        Else
            For Each ws In ThisWorkbook.Worksheets
                ws.Tab.ColorIndex = xlColorIndexNone
            Next ws
        End If
    End If
End Sub


Result:
If G18 > 100 in any sheet, it iterates through all the worksheets in the workbook, setting their tab color to red.
If the condition is not met, it resets the tab color of all worksheets to the default color.

Please have a try!
This comment was minimized by the moderator on the site
Hi,


I used this code:

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

The True, False or Else function works for me when I type it manually. However, I have a formula that displays True, False or Else as the result. This formula suddenly causes no response when changing the tab color. The formula is based on another sheet, is this a problem?
This comment was minimized by the moderator on the site
Hello Fabian,

Same problem here, have you found any solution to solve this problem ?

Thanks.
This comment was minimized by the moderator on the site
I have a workbook that has 350+ tabs in it. I would like to change the color of each tab based on information in cell G3 on that individual tab. For example, if cell G3 on sheet 1 = 'Water Production' change the tab to green. Is there a way to do this for every tab without having to each tab individually?
This comment was minimized by the moderator on the site
I want to set the sheet tab color based on the color of cell j4 in each sheet. There are 18+ Tabs and want to update the tab colors when the workbook is opened. If I can’t update when opened I can run the macro after the teams update the sheets.
This comment was minimized by the moderator on the site
Hello, wood
To solve your problem, please apply the below code: (Note: Copy and paste the below code into the ThisWorkbook code mode)
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

Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
I would like my tab to change color if any cell in column O or column P has a value in it. Is this possible?

Thank you!
This comment was minimized by the moderator on the site
Hello ,
I require some help
I need to change the sheet tab color only if in a certain range of cells, has today's date
Say for example,
Column L has some dates in the format (13-May-22)
One of the cell value is today's date, then the tab sheet color should change to red
Please help
Thank you in advance
This comment was minimized by the moderator on the site
Im looking to change to color of the tab based off one of 2 outcomes of a formula I have a formula of=IF((AND(AA1="Occupied",AA2="Occupied",AA3="Occupied",AA4="Occupied")),"Occupied","Vacant")
I need the tab to be red if "Occupied" and green if "Vacant". However the code above in the main post doesn't recognize the output of the If Than
This comment was minimized by the moderator on the site
Hello, Trying to have tab colour change based on value on a seperate sheet called Tracking here is what I tried but it does not seem to be working. Thanks




Private Sub Worksheet_Change(ByVal Target As Range)

'Updateby Extendoffice 20160930

If Target.Address = "Tracking!$C$2" Then

Select Case Target.Value

Case "ip"

Me.Tab.Color = vbRed

Case "w"

Me.Tab.Color = vbYellow

Case "c"

Me.Tab.Color = vbGreen

Case Else

Me.Tab.Color = vbBlue

End Select

End If

End Sub
This comment was minimized by the moderator on the site
Hello, Brad,
To make the code run correctly, you should not insert the sheet name into the code, please apple the following code:(click the sheet name you want to run this code, and then right clik the sheet name, and choose View Code, then paste the code into the module)

Private Sub Worksheet_Change(ByVal Target As Range)

'Updateby Extendoffice 20160930

If Target.Address = "$C$2" Then

Select Case Target.Value

Case "ip"

Me.Tab.Color = vbRed

Case "w"

Me.Tab.Color = vbYellow

Case "c"

Me.Tab.Color = vbGreen

Case Else

Me.Tab.Color = vbBlue

End Select

End If

End Sub

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Hello,

Never done code in excel before. I need a code that do what this code do, but I need another parameter.

So what I need is:

If cell value is not 0, and/or if some other cell has numbers in it, using count, then change color to red

If cell value is 0 and those other cells are empty, using count, then change color to green
This comment was minimized by the moderator on the site
How would you link the tab to a value in a different tab. In my example I have one tab with all the information that filters out to various tabs automatically. However each tab will read green or red, depending on whether there is a bAlance outstanding on the master tab. Can this be done using this code and if so, where do I write the link to the master sheet within this code?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations