我试图根据单元格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
感谢您的帮助!
答案 0 :(得分:1)
您的代码有效,但是如果您已经在使用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