簡體   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