我用的代码如下:PrivateSubCheckBox21_Click()DimNums,i%Nums=Array(14,15,16,18,21,24,27,30,33,3...
我用的代码如下:
Private Sub CheckBox21_Click()
Dim Nums, i%
Nums = Array(14, 15, 16, 18, 21, 24, 27, 30, 33, 36)
For i = 0 To 20
ActiveSheet.CheckBoxes("CheckBox" & Nums(i)).Value = CheckBox21.Value
Next
End Sub
可是会报以下错误,为什么呢?应该怎么修改
后来修改代码成:
Private Sub CheckBox21_Click()
For i = 0 To 20
ActiveSheet.CheckBoxes("CheckBox" & i).Value = CheckBox21.Value
Next
End Sub
还是会出错
Private Sub CheckBox21_Click()
Dim Nums, i%
Nums = Array(14, 15, 16, 18, 24, 27, 30, 33, 36)
For i = 0 To 8
ActiveSheet.CheckBoxes("CheckBox" & Nums(i)).Value = CheckBox21.Value
Next
End Sub
试一下吧,删除了21,改了i值。
我改成这样还是会出错,为什么呢?
Private Sub CheckBox21_Click()
For i = 0 To 20
ActiveSheet.CheckBoxes("CheckBox" & i).Value = CheckBox21.Value
Next
End Sub
你按我写的试一下,好吧,也许可以呢。
Private Sub CheckBox21_Click()
CheckBox21.Caption = IIf(CheckBox21.Value, "全不选", "全选")
Dim i
For i = 1 To Shapes.Count
If Left(Shapes(i).Name, 8) = "CheckBox" And Shapes(i).Name <> "CheckBox21" Then
Shapes(i).OLEFormat.Object.Object.Value = CheckBox21.Value
End If
Next
End Sub
考虑到可能存在其他控件,所以增加了对Shapes的Name属性的判断。如果楼主更改了控件的名字,就需要用更精准的判别代码(比如使用Shapes.OLEFormat.ProgID属性)
附件可下载参考
本回答被提问者采纳