我有一个在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行
答案 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
将返回TRUE
或FALSE
,这将隐藏或取消隐藏目标行。
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