我有一个工作表,我需要根据下拉菜单隐藏某些行。我用于执行此操作的代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B3")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
X = Target.Value
If X = "" Or X = "1" Then Rows("10:10").Hidden = True
End If
If Not Intersect(Target, Range("B2")) Is Nothing Then
Y = Target.Value
If Y <> "California" Then Rows("16:16").Hidden = True
If Y <> "Florida" Then Rows("16:16").Hidden = True
End If
End Sub
我遇到的问题是,当我选择由于状态选择取消隐藏而隐藏的行的所有者数时。有没有我想防止的事情?
编辑:更新了代码以包括建议的注释。现在,我选择的任何选择都会隐藏第16行,并且不会取消隐藏。
感谢BigBen,我弄清楚了我要去哪里错了。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
If Not Intersect(Target, Range("B3")) Is Nothing Then
X = Target.Value
If X = "" Or X = "1" Then Rows("11:11").Hidden = True
If X = "2" Then Rows("11:11").Hidden = False
End If
If Not Intersect(Target, Range("B2")) Is Nothing Then
Y = Target.Value
If Y <> "California" Then Rows("16:16").Hidden = True
If Y <> "Florida" Then Rows("16:16").Hidden = True
If Y = "California" Then Rows("16:16").Hidden = False
If Y = "Florida" Then Rows("16:16").Hidden = False
End If
End Sub
这可以按我需要的方式工作。选择正确的状态时,我没有考虑取消隐藏。