繁体   English   中英

粘贴到工作表(例如工作表更改事件)中时,无法使任何VBA代码正常工作-Excel 2016

[英]Can't get any VBA code to work when pasted into worksheet such as a worksheet change event - Excel 2016

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

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)。将代码粘贴到工作表中,并在顶部选择了“工作表”和“更改”

这只是一个代码示例。 我还有其他代码“根据单元格值隐藏/取消隐藏行”以及其他一些代码,但没有任何运行。 我遵循了“每个人”发布的说明(确切的步骤是相同的​​),在我的生命中,我什么也做不了。

谁能告诉我要检查的东西。

预先感谢您能提供帮助的任何人。 不胜感激。 戴夫

试试下面

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

您应该指定目标是否更改,还应该缩小目标范围,以使每次更改下拉列表以外的任何单元格时都不会触发。 所以您的代码应该像这样摘要

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM