基于下拉菜单隐藏行

问题描述 投票:0回答:1

我有一个工作表,我需要根据下拉菜单隐藏某些行。enter image description here我用于执行此操作的代码如下:

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行,并且不会取消隐藏。

excel vba
1个回答
1
投票

感谢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

这可以按我需要的方式工作。选择正确的状态时,我没有考虑取消隐藏。

© www.soinside.com 2019 - 2024. All rights reserved.