Excel VBAmacros使用checkbox来隐藏行 – 如果其他语句

一个工作表上有60个checkbox。 他们是表格控制checkbox。 他们都做类似的function,这是隐藏行。 当您单击checkbox时,它显示行未选中时,行被隐藏。 是否有一个容易的,如果否则或案例声明,我可以写这个:

Sub CheckBox1_Click() If Range("B4").Value = True Then Rows("5:62").EntireRow.Hidden = False Else Rows("5:62").EntireRow.Hidden = True End If End Sub Sub CheckBox2_Click() If Range("B63").Value = True Then Rows("64:102").EntireRow.Hidden = False Else Rows("64:102").EntireRow.Hidden = True End If End Sub Sub CheckBox3_Click() If Range("B103").Value = True Then Rows("104:129").EntireRow.Hidden = False Else Rows("104:129").EntireRow.Hidden = True End If End Sub Sub CheckBox4_Click() If Range("B130").Value = True Then Rows("131:160").EntireRow.Hidden = False Else Rows("131:160").EntireRow.Hidden = True End If End Sub Sub CheckBox5_Click() If Range("B161").Value = True Then Rows("162:183").EntireRow.Hidden = False Else Rows("162:183").EntireRow.Hidden = True End If End Sub Sub CheckBox6_Click() If Range("B184").Value = True Then Rows("185:222").EntireRow.Hidden = False Else Rows("185:222").EntireRow.Hidden = True End If End Sub Sub CheckBox7_Click() If Range("B223").Value = True Then Rows("224:244").EntireRow.Hidden = False Else Rows("224:244").EntireRow.Hidden = True End If End Sub 

…….等等等

此外,如果我需要添加更多行或删除行,我将如何编码?

我将不胜感激一个格式,我可以用它来创build自己的checkbox,而不必手动修复和单独编辑它们

你可以使用这样的东西:

 Sub CheckBox1_Click() HideRows "B63", "64:102" End Sub Sub HideRows(controllerRange, rowRange) Rows(rowRange).EntireRow.Hidden = Not Range(controllerRange).Value End Sub 

您也可以直接从checkbox中调用HideRows。

在CheckBox1分配macros,你会input以下内容:

 'HideRows "B63","64:102"' 

注意:必须如图所示input单引号。