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

Как изменить цвет вкладки листа в зависимости от значения ячейки?

Обычно вы можете легко и быстро изменить цвет вкладки в Excel, но пытались ли вы когда-нибудь изменить цвет вкладки на основе значения ячейки на листе? Если вас интересует эта задача, я расскажу о некоторых кодах для вас, чтобы раскрасить вкладку листа на основе определенного значения ячейки в Excel.

Изменить цвет вкладки одного листа на основе значения ячейки с кодом VBA

Измените несколько вкладок листов на основе значения ячейки с кодом VBA


стрелка синий правый пузырь Изменить цвет вкладки одного листа на основе значения ячейки с кодом VBA

Например, я хочу, чтобы текущий цвет вкладки листа был зеленым, если значением ячейки в A1 является текст «ИСТИНА», цвет вкладки будет красным, если текст в A1 - «ЛОЖЬ», и цвет вкладки будет синим, если значение в ячейке A1 - это любой другой текст, как показано на следующем снимке экрана:

цветной лист документа по значению 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

цветной лист документа по значению 2

Примечание: В приведенном выше коде A1 это ссылка на ячейку, по которой вы хотите раскрасить вкладку, "Правда","Ложь»- это текст, который вам нужен, вы можете изменить его по своему усмотрению, и вы можете изменить цвет в коде по своему усмотрению.

3. Затем сохраните и закройте это окно кода, теперь, когда вы вводите текст «True» в ячейку A1, цвет текущей вкладки станет зеленым, а когда вы введете текст «False» в ячейку A1, цвет вкладки станет красным, а если в ячейку A1 ввести другой текст, цвет табуляции автоматически станет синим.


стрелка синий правый пузырь Измените несколько вкладок листов на основе значения ячейки с кодом VBA

Если вам нужно изменить цвет вкладок нескольких листов в зависимости от значения ячейки, вот также код, который может вам помочь, сделайте следующее:

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно, в открывшемся окне дважды щелкните Эта рабочая тетрадь под 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

цветной лист документа по значению 3

Примечание: В приведенном выше коде A1 и Master - это ячейка и рабочий лист, на основе которых вы хотите раскрасить вкладку, Sheet1, Sheet2, Sheet3 - это листы, на которых вы хотите раскрасить вкладки. КТЭ, KTW, KTO являются значениями ячеек в A1, на основе которых вы хотите раскрасить вкладки, вы можете изменить ссылки и цвета в коде по своему усмотрению.

2. Затем сохраните и закройте это окно кода, теперь, когда вы вводите текст KTE в ячейку A1 основного листа, вкладка Sheet1 будет окрашена в красный цвет, когда вы введете KTO в ячейку A1, Sheet2 будет окрашен в зеленый цвет, а когда вы вводите KTW в ячейку A1, Sheet3 будет окрашен в синий цвет, см. снимок экрана:

цветной лист документа по значению 4


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

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

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (23)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Уважаемые господа.
пожалуйста, помогите мне, как изменить цвет вкладки листа в зависимости от даты/дня.

например: -
если лист № 1 воскресенье, то - вкладка листа «КРАСНЫЙ»
если лист № 2 - понедельник, то - вкладка листа "Зеленый"
если лист № 3 вторник, то - вкладка листа "Зеленый"
если лист №4 среда то - вкладка листа "Зеленый"
если лист № 5 - четверг, то - вкладка листа "Зеленый"
если лист № 6 пятница, то - вкладка листа "Зеленый"
если лист № 7 - суббота, то - вкладка листа "Зеленый"

Пожалуйста, помогите мне с вышеуказанной проблемой Excel.

Спасибо и уважением
Фаиз ибн Увайз П.
Этот комментарий был сведен к минимуму модератором на сайте
Ваше описание немного расплывчато относительно того, что вы на самом деле пытаетесь сделать. Если рабочая тетрадь рассчитана только на неделю, раскрасьте вкладки. Если продолжительность больше недели, то решение немного сложнее. Пока вы не детализируете проблему, есть несколько доступных решений. Я и многие другие люди не будут тратить свое время на кодирование 2,000 решений для вас бесплатно. Но вы детализируете проблему, мы можем предоставить 1 решение.
Этот комментарий был сведен к минимуму модератором на сайте
как я могу изменить цвет вкладки в зависимости от погоды в диапазоне ячеек есть текст в них
Этот комментарий был сведен к минимуму модератором на сайте
Формула работает для «Истина» - вкладка листа КРАСНАЯ, так что это здорово, но если я изменю ее с «Истина» на «Ложь», я хочу, чтобы вкладка листа не имела цвета. Какова формула отсутствия цвета на вкладке листа, если не выбрано значение «Истина»? Также, если я хочу, чтобы формула была для группы ячеек, например. A1:A30 какой код я использую?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Шеннон:
Следующий код VBA может оказать вам услугу, попробуйте:

Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRg как диапазон
Установить xRg = Пересечение (Цель, Диапазон ("A1: A30"))
Если xRg ничего не значит, выйдите из Sub
Выберите Case Target.Value
Дело «Правда»
Me.Tab.Color = vbRed
Случай "Ложный"
Me.Tab.Color = Ложь
End Select
End Sub

Надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли способ изменить цвет вкладки на основе следующего: у меня есть главная вкладка, где строки 3-7 окрашены в синий цвет и будут соответствовать соответствующим вкладкам 3-7 (которые названы на основе значений ячеек в мастере в эти строки), которые я хотел бы покрасить в синий цвет. Затем ряды 8-12 окрашиваются в зеленый цвет и также соответствуют вкладкам 8-12 и так далее.
Этот комментарий был сведен к минимуму модератором на сайте
Это был потрясающий трюк.
Я связал цвет вкладки на основе значения ячейки A1 (<> 0 RED и = 0 Green), однако макрос выполняется, только если я выбираю A1, нажимаю F2, а затем нажмите Enter. Без этого, хотя цвет вкладки (в зависимости от ее значения) должен быть, скажем, красным, но остается зеленым.
Я использую эксель 2007.
Этот комментарий был сведен к минимуму модератором на сайте
Можно ли заставить это работать, когда ячейка A1 может иметь все 3 ответа на отдельных строках внутри ячейки? То есть KTE, KTO и KTW присутствуют в ячейке, так как это позволяет делать множественный выбор из раскрывающегося списка.
Этот комментарий был сведен к минимуму модератором на сайте
Я пытаюсь использовать этот код и применить его к флажку, поэтому, когда я устанавливаю флажок, цвет меняется, если я снимаю его, он меняется обратно (у меня есть true = зеленый, false = красный, еще = красный) . Но когда я проверяю и снимаю галочку, выдает ошибку «необходим объект».


Private Sub CheckBox1_Click ()
_____If Target.Address = "$e$5" Then 'здесь ошибка
__________Выберите цель обращения.Значение
__________Случай "Ложь"
_______________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 может решить вашу проблему, попробуйте, надеюсь, он вам поможет!

Private Sub Worksheet_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 = Разделить (xStr, ":")
Если (UBound(xArr) - LBound(xArr) + 1) > 2, то выход из подпрограммы
xI1 = Целое (xArr (0))
Если (Len(xArr(0)) - 2) < 1 Тогда
Если xI1 > 23, то выход из подпрограммы
Еще
Exit Sub
End If
хСМ = хАрр(1)
При ошибке Перейти к Err01
If (Len(xSM) - 2) <> 0 Then Exit Sub
Если Int(Left(xSM, 1)) > 5, то выйти из Sub
Если Int(Right(xSM, 1)) > 10, то выйти из подпрограммы
Если xI1 >= 20 Тогда
Me.Tab.Color = vbGreen
Еще
Me.Tab.Color = vbRed
End If
Ошибка01:
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Уважаемый Скайян,
Извините за слишком поздний отзыв. Эта формула работает, когда я вручную меняю значение в ячейке. Но это было не то, что мне нужно.
Значение ячейки является результатом формулы из разностных листов. Например, это формула в ячейке "O13-'520'!AD3". Это означает, что значение в этой ячейке меняется в зависимости от значения другой ячейки в соответствующем листе. Мне нужно, чтобы цвет листа автоматически менялся при изменении значения в ячейке "O13-'520'!AD3", когда значение в ячейке "O13-'520'!AD3" ниже 05:00 - красный , >20:00 зеленый, между 05:00 и 20:00 коричневый.
Заранее благодарим вас и с наилучшими пожеланиями!
Этот комментарий был сведен к минимуму модератором на сайте
Привет всем, как мне изменить цвет вкладки на основе определенного значения в столбце нескольких листов? Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Как бы вы связали вкладку со значением на другой вкладке. В моем примере у меня есть одна вкладка со всей информацией, которая автоматически фильтруется на разные вкладки. Однако каждая вкладка будет отображаться зеленым или красным цветом, в зависимости от того, есть ли непогашенный баланс на главной вкладке. Можно ли это сделать с помощью этого кода, и если да, то где мне написать ссылку на мастер-лист в этом коде?
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,

Никогда раньше не писал код в excel. Мне нужен код, который делает то, что делает этот код, но мне нужен еще один параметр.

Итак, что мне нужно:

Если значение ячейки не равно 0 и/или если в какой-либо другой ячейке есть числа, используя счетчик, измените цвет на красный

Если значение ячейки равно 0, а эти другие ячейки пусты, используя счетчик, измените цвет на зеленый.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Попытка изменить цвет вкладки на основе значения на отдельном листе под названием «Отслеживание» - это то, что я пробовал, но, похоже, это не работает. Спасибо




Private Sub Worksheet_Change (ByVal Target As Range)

'Обновить Extendoffice 20160930

Если Target.Address = "Отслеживание!$C$2" Тогда

Выберите Case Target.Value

Корпус "ИП"

Me.Tab.Color = vbRed

Дело "ж"

Me.Tab.Color = vbYellow

Случай "с"

Me.Tab.Color = vbGreen

Case Else

Me.Tab.Color = vbBlue

End Select

End If

End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Брэд,
Чтобы код работал правильно, вы не должны вставлять имя листа в код, добавьте следующий код: (щелкните имя листа, на котором вы хотите запустить этот код, а затем щелкните правой кнопкой мыши имя листа и выберите «Просмотреть код», затем вставьте код в модуль)

Private Sub Worksheet_Change (ByVal Target As Range)

'Обновить Extendoffice 20160930

Если Target.Address = "$C$2" Тогда

Выберите Case Target.Value

Корпус "ИП"

Me.Tab.Color = vbRed

Дело "ж"

Me.Tab.Color = vbYellow

Случай "с"

Me.Tab.Color = vbGreen

Case Else

Me.Tab.Color = vbBlue

End Select

End If

End Sub

Пожалуйста, попробуйте, надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
Я хочу изменить цвет вкладки на основе одного из двух результатов формулы. У меня есть формула = ЕСЛИ ((И (AA2 = "Занято", AA1 = "Занято", AA2 = "Занято", AA3 = " Занято")), "Занято", "Свободно")
Мне нужно, чтобы вкладка была красной, если «Занято», и зеленой, если «Свободна». Однако код выше в основном сообщении не распознает вывод If Than
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуй,
мне нужна помощь
Мне нужно изменить цвет вкладки листа, только если в определенном диапазоне ячеек есть сегодняшняя дата
Скажите, например,
Столбец L имеет некоторые даты в формате (13-мая-22)
Одно из значений ячейки — сегодняшняя дата, тогда цвет вкладки должен измениться на красный.
Пожалуйста помоги
заранее спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Я хотел бы, чтобы моя вкладка изменила цвет, если в какой-либо ячейке в столбце O или столбце P есть значение. Это возможно?

Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Я хочу установить цвет вкладки листа на основе цвета ячейки j4 на каждом листе. Существует более 18 вкладок, и вы хотите обновить цвета вкладок при открытии книги. Если я не могу обновить при открытии, я могу запустить макрос после того, как команды обновят листы.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, дерево
Чтобы решить вашу проблему, примените приведенный ниже код: (Внимание: Скопируйте и вставьте приведенный ниже код в Эта рабочая тетрадь кодовый режим)
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

Пожалуйста, попробуйте, надеюсь, это поможет вам!
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL