VBA - 根据工作表标签颜色更改特定单元格值的字体颜色

时间:2021-05-19 14:48:44

标签: excel vba

我在单元格 V6 中有一个值,如果名为“测试”的特定工作表选项卡的颜色为红色 (vbRed),我希望它更改其颜色。我试过一个代码,但它似乎没有改变单元格中文本的颜色。我想知道出了什么问题以及可以做些什么来解决它。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Test")
If ws.Tab.ColorIndex = vbRed Then
Range("v6").Font.Color = vbRed
End If
End Sub

1 个答案:

答案 0 :(得分:1)

一种方法是使用 Boolean 变量(我称之为变量 colortest)来测试标签颜色是否等于 vbRed。

如果选项卡是 vbRed,此示例代码将字体颜色变为红色,如果选项卡是 vbRed 以外的任何其他颜色,则将字体颜色变为黑色。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet, colortest As Boolean
Set ws = ThisWorkbook.Sheets("Test")

colortest = Sheets("Test").Tab.Color = vbRed

If colortest = True Then
    Range("v6").Font.Color = vbRed
ElseIf colortest = False Then
    Range("v6").Font.Color = vbBlack
End If

End Sub

`

注意:我使用了 Worksheet_SelectionChange,因此代码在您点击单元格后立即运行,而不是像 Worksheet_Change 中那样编辑单元格