我隐藏了带复选框宏的行
每次我想插入一个新行时,vba代码都搞砸了,分配给隐藏行的代码将不起作用
有没有办法动态地让行改变vba中的代码
所以我不必重做所有行值和复选框中的移动
[IMG] http://i39.tinypic.com/2akek5z.jpg [/ IMG]
Sub CheckBox1_Click()
If Range("B3").Value = True Then
Rows("4:18").EntireRow.Hidden = False
Else
Rows("4:18").EntireRow.Hidden = True
End If
End Sub
Sub CheckBox2_Click()
If Range("B51").Value = True Then
Rows("52:66").EntireRow.Hidden = False
Else
Rows("52:66").EntireRow.Hidden = True
End If
End Sub
我在代码中有大约10个子检查框
如果我插入或删除一行,下面的代码将无效。
这是因为行已更改
来自我写的原始代码
答案 0 :(得分:0)
<强> 修改 强>
使用'命名范围'而不是硬编码范围。插入新行时,命名范围将自动更新。例如:
我选择了第9行到第13行并将它们命名为'RowsABC',如下所示:
我还将复选框单元格命名为“CheckABC”,以便它不再依赖于它所在的行。
您的代码现在看起来像这样:
If Range("CheckABC").Value = True Then
Range("RowsABC").EntireRow.Hidden = False
Else
Range("RowsABC").EntireRow.Hidden = True
End If
现在您可以选择第10行和右键单击的行 - &gt;插入,您的宏将隐藏行9:14而不是9:13,因为命名范围将在您插入时自动更新。