【问题标题】:use checkbox to hide/unhide rows based on cell value使用复选框根据单元格值隐藏/取消隐藏行
【发布时间】:2020-12-08 19:37:33
【问题描述】:

在 Excel 中使用 VBA,试图了解如何使用复选框来隐藏/取消隐藏在特定列中具有特定值的任何行。我的 VBA 技能越来越好,我练习得越多,但我仍然不擅长循环。感谢您提供的任何帮助。这是我目前所拥有的。

Private Sub CkBx_ShowAllRecords_Click()
If Me.CkBx_ShowAllRecords = True Then
 For Each Row In Range("Table1").ListObject.ListColumns
    If Row.Cells(1, "column5").Value = "Submission Complete" Then
    Application.EntireRow.Visible=True
Next
End if
End Sub

此外,当我取消选中该框时,我希望隐藏第 5 列单元格值等于“提交完成”的所有行(与我在上面选中框控件时放置的相反)。

【问题讨论】:

    标签: excel vba checkbox


    【解决方案1】:

    希望对您有所帮助:

    Private Sub CkBx_ShowAllRecords_Click()
    Dim i As Long
    If Me.CkBx_ShowAllRecords = True Then
        For i = 1 To ActiveSheet.ListObjects("Table1").Range.Rows.Count
            If ActiveSheet.ListObjects("Table1").DataBodyRange(i, 5).Value = "Submission Complete" Then
                Rows((i + 1) & ":" & (i + 1)).Select
                Selection.EntireRow.Hidden = True
            End If
        Next i
    Else
        ActiveSheet.Rows.EntireRow.Hidden = False
    End If
    Me.Hide
    End Sub
    

    【讨论】:

    • 谢谢,感谢您的帮助。代码有点工作,但我意识到我对这种情况的思考完全错了,所以如果我浪费了你的时间,我深表歉意。我最终应用了自动过滤器的代码,而不是循环遍历表格的每一行。我不敢相信我没有早点这么想。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2019-04-06
    • 2022-08-07
    • 2015-01-17
    • 1970-01-01
    相关资源
    最近更新 更多