使用表单复选框取消隐藏/隐藏excel中的行

时间:2018-11-01 20:45:17

标签: excel vba checkbox

我有一个在excel中创建的表单,该表单具有隐藏的行[10:48],并且我想创建该表单,以便在单击复选框时不隐藏行[10:48]。我为复选框分配了一个宏,并使用以下公式:

Private Sub CheckBox45_Click()

  If CheckBox45 = True Then

  [10:48].EntireRow.Hidden = False

  Else: [10:48].EntireRow.Hidden = True

End If

End Sub

当我单击复选框时,什么也没有发生,但是当我取消隐藏行并单击复选框时,它将隐藏行。这使我认为只有一种操作有效。有没有办法来解决这个问题?

预先感谢您的帮助。

不知道这是否重要,但表格复选框位于D列第6行

2 个答案:

答案 0 :(得分:1)

这假定您要隐藏/取消隐藏工作表1上的行,并且该复选框属于工作簿的工作表1,然后:

Private Sub CheckBox30_Click()  
    If ThisWorkbook.Sheets(1).CheckBoxes("Check Box 30").Value = 1 Then
        ThisWorkbook.Sheets(1).Rows("10:48").Hidden = true 
    Else
        ThisWorkbook.Sheets(1).Rows("10:48").Hidden = false
    End If
End Sub

答案 1 :(得分:0)

这是另一种方法。

语句ws.CheckBoxes("Check Box 30") = 1将返回TRUEFALSE,这将隐藏或取消隐藏目标行。

Private Sub CheckBox30_Click()

    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
    ws.Range("A10:A48").EntireRow.Hidden = ws.CheckBoxes("Check Box 30") = 1

End Sub