粘贴到工作表(例如工作表更改事件 - Excel 2016)时无法获取任何VBA代码

时间:2017-09-08 16:25:28

标签: excel-vba excel-2016 vba excel

当粘贴到工作表中时,我似乎无法获得“任何”代码。这是我的代码示例。如果从数据验证下拉列表中选择“是”,则只需将“工作表”选项卡颜色更改为“绿色”,否则将其设置为“红色”。默认情况下,Tab颜色为黄色

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C3").Value = "Yes" Then
    Me.Tab.ColorIndex = 4
Else
    Me.Tab.ColorIndex = 3
End If
End Sub

工作簿已启用宏(.xlsm) 代码将粘贴到工作表中,并在顶部

中选择“工作表”和“更改”

这只是一个代码示例。我有其他代码“基于单元格值隐藏/取消隐藏行”以及其他几个并且没有运行。我遵循了“每个人”发布的说明(这些步骤都是相同的),对于我的生活,我无法得到任何工作。

任何人都可以告诉我要检查什么。

提前感谢任何有帮助的人。非常感激。 戴夫

2 个答案:

答案 0 :(得分:0)

尝试以下

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address="$C$3" Then
If Range("C3").Value = "Yes" Then
    Me.Tab.Color = RGB(0,255,0)
Else
    Me.Tab.Color = RGB(255,0,0)
End If
End If
End Sub

答案 1 :(得分:0)

您应指定目标是否更改,还应缩小目标范围,以便每次更改下拉菜单以外的任何单元格时不会触发。 所以你的代码应该是这样的总结

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C3")) Is Nothing Then
  If Target.Address="$C$3" Then
    If Range("C3").Value = "Yes" Then
        Me.Tab.Color = RGB(0,255,0)
    Else
        Me.Tab.Color = RGB(255,0,0)
    End If
  End If
End IF
End Sub