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

如何根据单元格值更改工作表标签的颜色?

通常,您可以在Excel中轻松快速地更改选项卡颜色,但是,您是否曾经尝试过根据工作表中的单元格值更改选项卡颜色? 如果您对此任务感兴趣,我将为您介绍一些代码,这些代码可让您根据Excel中的特定单元格值为工作表标签着色。

使用VBA代码根据单元格值更改一张标签的颜色

使用VBA代码根据单元格值更改多个工作表标签


箭头蓝色右气泡 使用VBA代码根据单元格值更改一张标签的颜色

例如,我希望如果A1中的单元格值为文本“ TRUE”,则当前工作表标签颜色将为绿色;如果A1中的文本为“ FALSE”,则标签颜色将为红色;如果A1中的文本为“ FALSE”,则标签颜色将为蓝色。单元格AXNUMX中的值是任何其他文本,如以下屏幕截图所示:

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中输入文本“ True”时,当前标签页颜色将变为绿色,而当您在单元格A1中输入文本“ False”时,标签页颜色将变为红色,如果在单元格A1中输入了其他文本,则标签颜色将自动变为蓝色。


箭头蓝色右气泡 使用VBA代码根据单元格值更改多个工作表标签

如果您需要根据单元格值更改多个工作表标签的颜色,以下代码也可以为您提供帮助,请执行以下操作:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口,在打开的窗口中,双击 的ThisWorkbook 在下面 VBA项目 部分,然后将以下代码复制并粘贴到空白处 模块:

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 是要为选项卡着色的工作表。 韩国电信, 韩国电信, 韩国旅游发展局 是您要为标签上色的A1中的单元格值,您可以根据需要更改代码中的引用和颜色。

2。 然后保存并关闭此代码窗口,现在,当您在主表的单元格A1中输入文本KTE时,Sheet1选项卡将变为红色,当您在单元格A1中输入KTO时,Sheet2将变为绿色,并且当在单元格A1中输入KTW时,Sheet3将变为蓝色,请参见屏幕截图:

doc色表(按值4)


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (23)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
尊敬的先生。
请帮助我如何根据日期/日期更改工作表标签颜色。

例如:-
如果第 1 表是星期天,那么 - 表标签“红色”
如果第 2 表是星期一,则 - 表选项卡“绿色”
如果第 3 号工作表是星期二,则 - 工作表选项卡“绿色”
如果第 4 表是星期三,则 - 表选项卡“绿色”
如果第 5 号工作表是星期四,那么 - 工作表选项卡“绿色”
如果第 6 号工作表是星期五,那么 - 工作表选项卡“绿色”
如果第 7 表是星期六,则 - 表选项卡“绿色”

请帮助我解决上述excel问题。

感谢和问候
Faiz Ibn Uvaiz P.
该评论由网站上的主持人最小化
您的描述对于您实际尝试做的事情有点模糊。 如果工作簿只有一周,则为选项卡着色。 如果持续时间超过一周,则解决方案会稍微复杂一些。 在您详细说明问题之前,有几种可用的解决方案。 我和许多人不会花时间免费为您编写 2,000 个解决方案。 但是您详细说明了我们可能会提供 1 个解决方案的问题。
该评论由网站上的主持人最小化
如何根据天气更改选项卡颜色一系列单元格中包含文本
该评论由网站上的主持人最小化
该公式适用于“真”-工作表选项卡是红色的,所以这很好,但如果我将其从“真”更改为“假”,我希望工作表选项卡具有“无颜色”。 如果未选择“真”,则工作表选项卡上没有颜色的公式是什么? 另外,如果我希望公式适用于一组单元格,例如。 A1:A30 我使用的代码是什么?
该评论由网站上的主持人最小化
你好,香农:
以下 VBA 代码可能会对您有所帮助,请尝试一下:

私人子Worksheet_Change(按目标的ByVal目标)
将 xRg 调暗为范围
设置 xRg = Intersect(Target, Range("A1:A30"))
如果 xRg 什么都不是,则退出 Sub
选择案例目标.值
案例“真实”
我.Tab.Color = vbRed
案例“假”
我.Tab.Color = False
最终选择
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) . 但是当我选中并取消选中时,它会引发错误“需要对象”


私有子 CheckBox1_Click()
_____If Target.Address = "$e$5" Then 'error here
__________选择案例目标。价值
__________案例“假”
______________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代码可以解决您的问题,请尝试,希望对您有所帮助!

私人子Worksheet_Change(按目标的ByVal目标)
将 xStr 调暗为字符串
将 xSN 调暗为字符串
将 xDate 调暗为字符串
将 xAddress 变暗为字符串
将 xArr() 调暗为字符串
将 xI1 调暗为整数
将 xSM 调暗为字符串
xDate = "20:00"
xAddress = "$A$1"
If Target.Address <> xAddress Then Exit Sub
xStr = 目标文本
xArr = 拆分(xStr,“:”)
If (UBound(xArr) - LBound(xArr) + 1) > 2 Then Exit Sub
xI1 = Int(xArr(0))
如果 (Len(xArr(0)) - 2) < 1 那么
如果 xI1 > 23 则退出 Sub
其他
退出小组
结束如果
xSM = xArr(1)
出错时转到 Err01
If (Len(xSM) - 2) <> 0 Then Exit Sub
If Int(Left(xSM, 1)) > 5 Then Exit Sub
If Int(Right(xSM, 1)) > 10 Then Exit Sub
如果 xI1 >= 20 那么
我.Tab.Color = vbGreen
其他
我.Tab.Color = vbRed
结束如果
错误01:
END SUB
该评论由网站上的主持人最小化
亲爱的天阳,
很抱歉反馈太晚了。 当我手动更改单元格中的值时,此公式有效。 但这不是我需要的。
单元格值是来自差异表的公式的结果。 例如,这是单元格“O13-'520'!AD3”中的公式。 这意味着此单元格中的值根据不同工作表中的不同单元格的值而变化。 我需要的是当单元格“O13-'520'!AD3”中的值发生更改时,当单元格“O13-'520'!AD3”中的值低于 05:00 - 红色时,工作表颜色会自动更改, >20:00 绿色,05:00 至 20:00 棕色。
提前感谢您和最诚挚的问候!
该评论由网站上的主持人最小化
大家好,如何根据多张表格列中的某个值更改标签颜色? 谢谢
该评论由网站上的主持人最小化
您如何将选项卡链接到不同选项卡中的值。 在我的示例中,我有一个选项卡,其中包含自动过滤到各个选项卡的所有信息。 但是,每个选项卡将显示为绿色或红色,具体取决于主选项卡上是否有未结余额。 可以使用此代码完成此操作吗?如果可以,我在哪里可以在此代码中写入指向主表的链接?
该评论由网站上的主持人最小化
你好,

以前从来没有在excel中写过代码。 我需要一个代码来完成这段代码的工作,但我需要另一个参数。

所以我需要的是:

如果单元格值不是 0,和/或如果其他单元格中有数字,则使用计数,然后将颜色更改为红色

如果单元格值为 0 并且其他单元格为空,则使用计数,然后将颜色更改为绿色
该评论由网站上的主持人最小化
您好,我尝试根据名为 Tracking 的单独工作表上的值更改选项卡颜色,但它似乎不起作用。 谢谢




私人子Worksheet_Change(按目标的ByVal目标)

'更新通过 Extendoffice 20160930

如果 Target.Address = "Tracking!$C$2" 那么

选择案例目标.值

案例“ip”

我.Tab.Color = vbRed

案例“w”

我.Tab.Color = vbYellow

案例“c”

我.Tab.Color = vbGreen

CASE ELSE

我.Tab.Color = vbBlue

最终选择

结束如果

END SUB
该评论由网站上的主持人最小化
你好,布拉德,
为使代码正确运行,请不要在代码中插入工作表名称,请苹果如下代码:(单击要运行此代码的工作表名称,然后右键单击工作表名称,然后选择查看代码,然后将代码粘贴到模块中)

私人子Worksheet_Change(按目标的ByVal目标)

'更新通过 Extendoffice 20160930

如果 Target.Address = "$C$2" 那么

选择案例目标.值

案例“ip”

我.Tab.Color = vbRed

案例“w”

我.Tab.Color = vbYellow

案例“c”

我.Tab.Color = vbGreen

CASE ELSE

我.Tab.Color = vbBlue

最终选择

结束如果

END SUB

请尝试,希望对您有所帮助!
该评论由网站上的主持人最小化
我希望根据公式的两个结果之一更改选项卡的颜色我有一个公式 =IF((AND(AA2="Occupied",AA1="Occupied",AA2="Occupied",AA3="占用")),"占用","空置")
如果“占用”,我需要标签为红色,如果“空置”,我需要为绿色。 但是,主帖中的上述代码无法识别 If Than 的输出
该评论由网站上的主持人最小化
,您好!
我需要一些帮助
仅当在某个单元格范围内具有今天的日期时,我才需要更改工作表标签颜色
比如说,
L 列的日期格式为 (13-May-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

请试一试,希望对您有所帮助!
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护