excel - 根据各种下拉菜单隐藏/取消隐藏行

标签 excel vba drop-down-menu hide

我正在尝试编写一个代码,该代码将根据下拉值隐藏/取消隐藏行。我可以让第一个下拉菜单 LLknownunknown 正常工作,但所有其他下拉菜单都不起作用。每个下拉列表的命名都是正确的,每个行号也是正确的,所以我现在确定发生了什么。

因此,当 LLknownunknown 更改时,正确的行将隐藏/取消隐藏。当 KnownUnknown 或 Zeroknownunknown 发生变化时,什么也不会发生。每个人都需要独立工作。

有什么想法吗?我检查了三遍,单元格名称是正确的。

Private Sub Worksheet_Change(ByVal Target As Range)

'The follow code will hide and unhide the Load Loss cell based on the user selection
    If Intersect(Target, Range("LLknownunknown")) Is Nothing Or Target.Cells.Count > 1 Then
        Exit Sub
        
    ElseIf Range("LLknownunknown").Value = "Yes" Then
        Rows("14:15").EntireRow.Hidden = False
        
    ElseIf Range("LLknownunknown").Value = "No" Then
        Rows("14:15").EntireRow.Hidden = True
        
    End If

'The follow code will hide and unhide the impedance cells based on the user selection
    If Intersect(Target, Range("KnownUnknown")) Is Nothing Or Target.Cells.Count > 1 Then
        Exit Sub
        
    ElseIf Range("KnownUnknown").Value = "Yes" Then
        Rows("21:30").EntireRow.Hidden = False
        Rows("36:52").EntireRow.Hidden = True

    ElseIf Range("KnownUnknown").Value = "No" Then
        Rows("21:30").EntireRow.Hidden = True
        Rows("36:52").EntireRow.Hidden = False
        
    End If
    
'The follow code will hide and unhide the zero sequence cells based on the user selection
    If Intersect(Target, Range("Zeroknownunknown")) Is Nothing Or Target.Cells.Count > 1 Then
        Exit Sub
        
    ElseIf Range("Zeroknownunknown").Value = "Yes" Then
        Rows("31:35").EntireRow.Hidden = False
        Rows("53:61").EntireRow.Hidden = True
        
    ElseIf Range("Zeroknownunknown").Value = "No" Then
        Rows("31:35").EntireRow.Hidden = True
        Rows("53:61").EntireRow.Hidden = False
        
    End If

End Sub

最佳答案

工作表更改:隐藏或取消隐藏行

Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim iCell As Range
    
    ' Hide or unhide the load loss cells.
    Set iCell = Intersect(Target, Range("LLknownunknown"))
    If Not iCell Is Nothing Then
        Select Case LCase(CStr(iCell.Value))
        Case "yes"
            Rows("14:15").Hidden = False
        Case "no"
            Rows("14:15").Hidden = True
        'Case Else
        End Select
        Set iCell = Nothing
    End If

    ' Hide or unhide the impedance cells.
    Set iCell = Intersect(Target, Range("KnownUnknown"))
    If Not iCell Is Nothing Then
        Select Case LCase(CStr(iCell.Value))
        Case "yes"
            Rows("21:30").Hidden = False
            Rows("36:52").Hidden = True
        Case "no"
            Rows("21:30").Hidden = True
            Rows("36:52").Hidden = False
        'Case Else
        End Select
        Set iCell = Nothing
    End If
    
    ' Hide or unhide the zero sequence cells.
    Set iCell = Intersect(Target, Range("Zeroknownunknown"))
    If Not iCell Is Nothing Then
        Select Case LCase(CStr(iCell.Value))
        Case "yes"
            Rows("31:35").Hidden = False
            Rows("53:61").Hidden = True
        Case "no"
            Rows("31:35").Hidden = True
            Rows("53:61").Hidden = False
        'Case Else
        End Select
        Set iCell = Nothing
    End If

End Sub

关于excel - 根据各种下拉菜单隐藏/取消隐藏行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72193918/

相关文章:

excel - 从范围变量中查找第一个和最后一个行号

excel - 执行Excel4Macro从关闭的工作簿中获取范围/图表

excel - 如何调用在另一个 UDF 中返回数组的 UDF?

javascript - 带有巨型下拉菜单的两条水平线

css下拉菜单故障

excel - 如果行数和列数不断变化,是否有更快的方法将单元格值从一张表复制到另一张表

excel - 在 Excel 中取消注册 XLL (VBA)

excel - SSIS 导入 Excel 文件 xls/xlsx

excel - 在 VBA 中使用 XLDOWN

javascript - 如何禁用单个菜单项?