我在单元格 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
答案 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
中那样编辑单元格