繁体   English   中英

Private Sub Worksheet_Change(ByVal Target As Range) 不起作用

[英]Private Sub Worksheet_Change(ByVal Target As Range) not working

我正在尝试根据单元格 B3 中的值隐藏行。 这早些时候对我有用,但不幸的是我无法弄清楚我改变了什么。 我右键单击选项卡并将其粘贴到“查看代码”中。 这是我的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then
If Range("B3") = "a" Then
    ActiveSheet.Rows("40:43").EntireRow.Hidden = False
ElseIf Range("B3") = "b" Then
    ActiveSheet.Rows("40:43").EntireRow.Hidden = True
End If
End If
End Sub

您的代码有效,但如果您已经在使用Target ,为什么不使用它的全部功能:

If Target.Address = "$B$3" Then
    If Target.Value2 = "a" Then ' <-- use Target.Value2
        Rows("40:43").EntireRow.Hidden = False ' <-- there's no need to use ActiveSheet
    ElseIf Target.Value2 = "b" Then
        Rows("40:43").EntireRow.Hidden = True
    End If
End If

注意:不需要使用ActiveSheet ,因为此事件是在ActiveSheet内部触发的。


如果以后需要添加更多场景,可以使用Select Case

If Target.Address = "$B$3" Then
    Select Case Target.Value2
        Case "a"
            Rows("40:43").EntireRow.Hidden = False
        Case "b"
            Rows("40:43").EntireRow.Hidden = True
        Case Else ' in case you want add more scenarios in the future
            ' do something else...
    End Select
End If

暂无
暂无

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

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