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

Як змінити колір вкладки аркуша на основі значення комірки?

Зазвичай ви можете легко і швидко змінити колір вкладки в Excel, але чи намагались ви коли-небудь змінювати колір вкладки на основі значення комірки на аркуші? Якщо вас цікавить це завдання, я розповім про деякі коди для того, щоб розфарбувати вкладку аркуша на основі певного значення комірки в Excel.

Змініть колір вкладки одного аркуша на основі значення комірки за допомогою коду VBA

Змінюйте кілька вкладок аркуша на основі значення комірки за допомогою коду VBA


стрілка синя права міхур Змініть колір вкладки одного аркуша на основі значення комірки за допомогою коду VBA

Наприклад, я хочу, щоб поточний колір вкладки аркуша був зеленим, якщо значенням клітинки в А1 є текст "TRUE", кольором вкладки буде червоний, якщо текст у A1 "FALSE", а кольором вкладки буде синій, якщо значення в комірці 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. Потім збережіть і закрийте це вікно коду, тепер, коли ви введете текст «True» у комірку A1, поточний колір вкладки стане зеленим, а коли ви введете текст «False» у комірку A1, колір вкладки стане червоним, а якщо в комірку А1 буде введено інший текст, колір вкладки автоматично стане синім.


стрілка синя права міхур Змінюйте кілька вкладок аркуша на основі значення комірки за допомогою коду VBA

Якщо вам потрібно змінити колір декількох вкладки аркуша на основі значення комірки, ось також код може вам допомогти, будь ласка, зробіть наступне:

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків у відкритому вікні двічі клацніть ThisWorkbook під VBAProject розділу, а потім скопіюйте та вставте наведений нижче код у порожній Модулі:

Код 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 - це аркуші, на яких потрібно забарвити вкладки. КТЕ, KTW, KTO - це значення комірок в А1, на основі яких ви хочете розфарбувати вкладки, ви можете змінювати посилання та кольори в коді, як вам потрібно.

2. Потім збережіть і закрийте це вікно коду, тепер, коли ви вводите текст KTE в комірку A1 головного аркуша, вкладка Sheet1 буде забарвлена ​​червоним кольором, коли ви введете KTO в комірку A1, Sheet2 буде забарвлений зеленим кольором, а коли ви введете KTW в комірку A1, Sheet3 буде забарвлений у синій колір, див. знімок екрана:

doc кольоровий аркуш за значенням 4


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (23)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Dear Sir.
будь ласка, допоможіть мені, як змінити колір вкладки аркуша на основі дати/дня.

наприклад: -
якщо аркуш № 1 - неділя, то - вкладка аркуша "ЧЕРВОНА"
якщо аркуш № 2 - понеділок, то - вкладка аркуша "Зелений"
якщо аркуш № 3 - вівторок, то - вкладка аркуша "Зелений"
якщо аркуш № 4 - середа, то - вкладка аркуша "Зелений"
якщо аркуш № 5 – четвер, то - вкладка аркуша «Зелений»
якщо аркуш № 6 - п'ятниця, то - вкладка аркуша "Зелений"
якщо аркуш № 7 субота, то - вкладка аркуша «Зелений»

будь ласка, допоможіть мені вирішити вищевказану проблему з Excel.

Спасибі й повагою
Фаїз ібн Увайз П.
Цей коментар був мінімізований модератором на сайті
Ваш опис трохи розпливчастий щодо того, що ви насправді намагаєтеся зробити. Якщо робочий зошит лише на тиждень, розфарбуйте вкладки. Якщо тривалість більше тижня, то рішення трохи складніше. Поки ви не детально описали проблему, є кілька доступних рішень. Я та багато людей не будемо витрачати наш час на кодування 2,000 рішень для вас безкоштовно. Але ви детально опишіть проблему, ми можемо надати 1 рішення.
Цей коментар був мінімізований модератором на сайті
як я можу змінити колір вкладки залежно від погоди, діапазон клітинок містить текст
Цей коментар був мінімізований модератором на сайті
Формула працює для «Правда» — вкладка аркуша червона, так що це чудово, але якщо я зміню її з «Правда» на «Неправда», я хочу, щоб вкладка аркуша мала «без кольору». Яка формула для відсутності кольору на вкладці аркуша, якщо не вибрано «Правда»? Також, якщо я хочу, щоб формула була для групи клітинок, наприклад. A1:A30 який код я використовую?
Цей коментар був мінімізований модератором на сайті
Привіт, Шеннон:
Наступний код VBA може зробити вам послугу, будь ласка, спробуйте:

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg As Range
Встановіть xRg = Intersect(Target, Range("A1:A30"))
Якщо xRg — нічого, вийдіть із Sub
Виберіть Цільове значення
Справа "Правда"
Me.Tab.Color = vbRed
Справа «Неправда»
Me.Tab.Color = False
End Select
End Sub

Сподіваюся, це може допомогти вам!
Цей коментар був мінімізований модератором на сайті
Чи є спосіб змінити колір вкладки на основі наступного: у мене є основна вкладка, де рядки 3-7 пофарбовані в синій колір і відповідатимуть відповідним вкладкам 3-7 (які названі на основі значень комірок у головній вкладці в ці рядки), які я хотів би пофарбувати в синій колір. Потім рядки 8-12 забарвлюються в зелений колір і також відповідають вкладкам 8-12 і так далі.
Цей коментар був мінімізований модератором на сайті
Це був один чудовий трюк.
Я зв’язав колір вкладки на основі значення комірки A1 (<>0 RED і =0 Green), однак макрос виконується, лише якщо я вибираю A1, натискаю F2, а потім натискаю enter. Без цього колір вкладки (виходячи з її значення) має бути, скажімо, червоним, але залишається зеленим.
Я використовую excel 2007.
Цей коментар був мінімізований модератором на сайті
Чи можна зробити це, якщо клітинка A1 може мати всі 3 відповіді в окремих рядках у клітинці? Тобто KTE, KTO та KTW присутні в комірці, оскільки це дозволяє зробити кілька варіантів вибору зі спадного списку.
Цей коментар був мінімізований модератором на сайті
Я намагаюся використати цей код і застосувати його до прапорця, тому, коли я встановлюю прапорець, колір змінюється, якщо я знімаю його, він повертається (я отримав true=green, false=red, else=red) . Але коли я встановлюю та знімаю прапорець, він видає помилку "об'єкт потрібен"


Private Sub CheckBox1_Click ()
_____Якщо Target.Address = "$e$5", то "тут помилка
__________Виберіть ціль справи. Значення
__________Справа «Неправда»
_______________Me.Tab.Color = vbRed
__________Регістр «Правда»
_______________Me.Tab.Color = vbGreen
__________Інший випадок
_______________Me.Tab.Color = vbRed
__________Вибір кінця
_____ Кінець Якщо
End Sub

Я скопіював і вставив його, щоб побачити, як він працює, а потім налаштував його відповідно до своїх потреб, але я не знайшов способу запустити його.
Цей коментар був мінімізований модератором на сайті
Шановні колеги,
Будь ласка, попросіть допомоги. Мені потрібно змінити колір вкладки аркуша на основі значення у форматі [h]:mm. Наприклад, якщо значення нижче 20:00 - червоний, >20:00 зелений.
Дякую і вітаю!
Цей коментар був мінімізований модератором на сайті
Шановні колеги,
Будь ласка, попросіть допомоги. Мені потрібно змінити колір вкладки аркуша на основі значення у форматі [h]:mm. Наприклад, якщо значення нижче 20:00 - червоний, >20:00 зелений.
Дякую і вітаю!
Цей коментар був мінімізований модератором на сайті
Привіт, Вікторе,
Наведений нижче код VBA може вирішити вашу проблему, будь ласка, спробуйте, сподіваюся, він допоможе вам!

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xStr як рядок
Dim xSN як рядок
Dim xDate як рядок
Dim xAddress як рядок
Dim xArr() як рядок
Dim xI1 як ціле число
Dim xSM як рядок
xDate = "20:00"
xAddress = "$A$1"
Якщо Target.Address <> xAddress, то вийдіть із Sub
xStr = Ціль.Текст
xArr = Split(xStr, ":")
Якщо (UBound(xArr) - LBound(xArr) + 1) > 2, то вийти з підпорядкування
xI1 = Int(xArr(0))
Якщо (Len(xArr(0)) - 2) < 1 Тоді
Якщо xI1 > 23, то вийдіть із Sub
Ще
Exit Sub
End If
xSM = xArr(1)
Помилка GoTo Err01
Якщо (Len(xSM) - 2) <> 0, то Вийдіть із суб
Якщо Int(Left(xSM, 1)) > 5, то вийдіть із Sub
Якщо Int(Right(xSM, 1)) > 10, то вийдіть із Sub
Якщо xI1 >= 20 Тоді
Me.Tab.Color = vbGreen
Ще
Me.Tab.Color = vbRed
End If
Err01:
End Sub
Цей коментар був мінімізований модератором на сайті
Шановний Скайян,
Вибачте за пізній відгук. Ця формула працює, коли я вручну зміню значення в комірці. Але це було не те, що мені потрібно.
Значення комірки є результатом формули з різниць. Наприклад, це формула в комірці «O13-'520'!AD3». Це означає, що значення в цій комірці змінюється в залежності від значення відповідної комірки на відмінному аркуші. Мені потрібно, щоб колір аркуша автоматично змінювався, коли значення в клітинці "O13-'520'!AD3" змінюється, коли значення в клітинці "O13-'520'!AD3" нижче 05:00 - червоний , >20:00 зелений, з 05:00 до 20:00 коричневий.
Наперед дякую та найкращі побажання!
Цей коментар був мінімізований модератором на сайті
Всім привіт, як змінити колір вкладки на основі певного значення в стовпці кількох аркушів? Спасибі
Цей коментар був мінімізований модератором на сайті
Як би ви зв’язали вкладку зі значенням на іншій вкладці. У моєму прикладі у мене є одна вкладка з усією інформацією, яка автоматично відфільтровується на різні вкладки. Однак кожна вкладка матиме зелений або червоний колір, залежно від того, чи є залишок на головній вкладці. Чи можна це зробити за допомогою цього коду, і якщо так, то де я можу написати посилання на основний аркуш у цьому коді?
Цей коментар був мінімізований модератором на сайті
Здравствуйте,

Ніколи раніше не виконував код в Excel. Мені потрібен код, який виконує те, що робить цей код, але мені потрібен інший параметр.

Отже, що мені потрібно:

Якщо значення комірки не дорівнює 0 та/або якщо в якійсь іншій клітинці є числа, використовуючи count, змініть колір на червоний

Якщо значення комірки дорівнює 0, а інші клітинки порожні, використовуючи count, змініть колір на зелений
Цей коментар був мінімізований модератором на сайті
Привіт. Я спробував змінити колір вкладки на основі значення на окремому аркуші під назвою Відстеження, але, здається, це не працює. Спасибі




Приватний допоміжний робочий лист_Change(ByVal Target As Range)

'Оновлення Extendoffice 20160930

Якщо Target.Address = "Відстеження!$C$2", Тоді

Виберіть Цільове значення

регістр "ip"

Me.Tab.Color = vbRed

регістр "w"

Me.Tab.Color = vbYellow

Випадок "с"

Me.Tab.Color = vbGreen

Інший випадок

Me.Tab.Color = vbBlue

End Select

End If

End Sub
Цей коментар був мінімізований модератором на сайті
Привіт, Бред,
Щоб код працював правильно, вам не слід вставляти ім’я аркуша в код, будь ласка, додайте такий код: (клацніть назву аркуша, для якого потрібно запустити цей код, а потім клацніть правою кнопкою миші назву аркуша та виберіть Переглянути код, потім вставте код в модуль)

Приватний допоміжний робочий лист_Change(ByVal Target As Range)

'Оновлення Extendoffice 20160930

Якщо Target.Address = "$C$2", Тоді

Виберіть Цільове значення

регістр "ip"

Me.Tab.Color = vbRed

регістр "w"

Me.Tab.Color = vbYellow

Випадок "с"

Me.Tab.Color = vbGreen

Інший випадок

Me.Tab.Color = vbBlue

End Select

End If

End Sub

Будь ласка, спробуйте, сподіваюся, це допоможе вам!
Цей коментар був мінімізований модератором на сайті
Я хочу змінити колір вкладки на основі одного з 2 результатів формули. У мене є формула=IF((AND(AA1="Occupied",AA2="Occupied",AA3="Occupied",AA4=") Зайнятий")),"Зайнятий","Вакантний")
Мені потрібно, щоб вкладка була червоною, якщо «Зайнято», і зеленою, якщо «Вакантна». Однак код вище в головній публікації не розпізнає результат If Than
Цей коментар був мінімізований модератором на сайті
Вітаємо,
Мені потрібна допомога
Мені потрібно змінити колір вкладки аркуша, лише якщо в певному діапазоні клітинок є сьогоднішня дата
Скажи, наприклад,
У стовпці L є деякі дати у форматі (13-22 травня)
Одним із значень комірки є сьогоднішня дата, тоді колір вкладки має змінитися на червоний
Будь ласка, допоможіть
Заздалегідь спасибі
Цей коментар був мінімізований модератором на сайті
Я хотів би, щоб моя вкладка змінила колір, якщо будь-яка клітинка в стовпці O або стовпці P має значення. Це можливо?

Дякую!
Цей коментар був мінімізований модератором на сайті
Я хочу встановити колір вкладки аркуша на основі кольору клітинки j4 на кожному аркуші. Існує понад 18 вкладок, і ви хочете оновити кольори вкладок, коли відкриваєте книгу. Якщо я не можу оновити після відкриття, я можу запустити макрос після того, як команди оновлять аркуші.
Цей коментар був мінімізований модератором на сайті
Привіт, деревина
Щоб вирішити вашу проблему, застосуйте наведений нижче код: (примітки: Скопіюйте та вставте наведений нижче код у ThisWorkbook кодовий режим)
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

Будь ласка, спробуйте, сподіваюся, це допоможе вам!
There are no comments posted here yet

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL