在不同的工作表中根据单元格(其中有公式)改变标签页的颜色,适用于多个工作表。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在不同的工作表中根据单元格(其中有公式)改变标签页的颜色,适用于多个工作表。相关的知识,希望对你有一定的参考价值。
第一次尝试因为重复而被关闭,我用了建议的线程(当单元格被公式改变时,VBA代码不运行。)& 我已经做了一些修改,但还是不行,什么都没有发生。
我想根据不同工作表中的单元格(其中有一个公式)的值来改变一个工作表标签的颜色,但是同一个工作簿。不同的工作表是主工作表 "Test Summaries",而我想引用的单元格在每个工作表中都是不同的。
我需要的是
- "Microscopy "选项卡根据 "Test Summaries "单元格 "C2"(本例为红色)中的公式 将其中一种颜色改为红色或橙色或绿色。
- "Culture",根据 "Test Summaries "表 "C3 "单元格中的公式,将其中一种颜色改为红色或橙色绿色(本例为红色)
- ...等等
在图片中,你会看到我有一个公式,它告诉我根据特定的测试标准,标签页应该是什么颜色。我已经尝试了下面的代码,但它不会改变选项卡的颜色,除非单元格包含文本和宏只允许我参考一个单元格。
我更新的代码,是在Sheet "Microscopy "对象中。
Private Sub Worksheet_Calculate1(ByVal Target As Range)
Dim MyVal$
MyVal = ActiveWorkbook.Sheets("Test Summaries").Range("C2")
With ActiveSheet.Tab
Select Case MyVal
Case "RED"
.Color = vbRed
Case "GREEN"
.Color = vbGreen
Case "AMBER"
.ColorIndex = 45
End Select
End With
End Sub
Private Sub Worksheet_Calculate()
If Range("A1").Value <> PrevVal Then
MsgBox "Value Changed"
PrevVal = Range("A1").Value
End If
End Sub
但这并没有工作(什么都没有发生),所以后来我添加了以下基于线程我已经做了一些更改我的代码,但什么都没有发生。
这段代码进入ThisWorkbook对象(但我不明白它应该做什么,但它似乎并不正确,因为我需要每个选项卡引用不同的单元格)。
Private Sub Workbook_Open()
PrevVal = Sheet1.Range("C3").Value
End Sub
然后在模块1中,我把这个
Private Sub Workbook_Open()
PrevVal = Sheet1.Range("C3").Value
End Sub
我真的很感激的帮助。 顺便说一下,我在excel 2010工作
答案
类似下面的方法应该可以解决这个问题,在A列的工作表名称列表中循环,然后使用 Offset
指C栏中的相应公式。
Private Sub Worksheet_Calculate()
Dim rng As Range
For Each rng In Me.Range("A2:A5") ' change as needed
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(rng.Value)
Select Case rng.Offset(, 2).Value
Case "RED"
ws.Tab.Color = vbRed
Case "GREEN"
ws.Tab.Color = vbGreen
Case "AMBER"
ws.Tab.ColorIndex = 45
End Select
Next
End Sub
以上是关于在不同的工作表中根据单元格(其中有公式)改变标签页的颜色,适用于多个工作表。的主要内容,如果未能解决你的问题,请参考以下文章