通过VBA实现checkbox的全选和反选

checkbox的全选和反选可以通过VBA来控制,这种设计常见于一些交互式报表,代码如下:

1.分成两个IF判断

Private Sub CheckBox1_Click()  ‘checkbox为总控,通过点击它来实现全选或反选
Dim b3 As Integer
Dim i As Integer
Dim b1 As Range
If Sheets(1).CheckBox1.Value Then  ’第一个IF判断为全选的条件时
    b3 = Sheets(1).Range("h50").End(xlUp).Row   ‘用来解决数据不连续的问题
    For i = 2 To b3 
    Sheets(1).OLEObjects("CheckBox" & i).Object.Value = True
    Next i
    End If
If Sheets(1).CheckBox1.Value = False Then ’第一个IF判断为反选的条件时
    b3 = Sheets(1).Range("h50").End(xlUp).Row
    For i = 2 To b3
    Sheets(1).OLEObjects("CheckBox" & i).Object.Value = False
    Next i
End If
End Sub

2.让checkbox1和其余所有的复选框状态一致,其余代码同上,只改变for循环的部分,如下:

For i = 3 To 30 Sheets(1).OLEObjects("CheckBox" & i).Object.Value = Sheets(1).CheckBox1.Value   ‘这样只要checkbox1为选中,循环体内的所有复选框都为选中,反之亦然

next i

3. 通过设置布尔值来进行判断

Dim f As Boolean    ‘设置一个布尔值变量
f = Sheets(1).CheckBox1.Value    ’将这个变量赋值给所有的checkbox,达到使它们时刻保  持相同状态的效果
    For i = 3 To 30
    Sheets(1).OLEObjects("CheckBox" & i).Object.Value = f
    Next i

上一篇:二叉树遍历(flist)(二叉树,已知中序层序,求先序)


下一篇:java:Maven构建项目速度太慢的解决办法,以及报错Retrieving archetypes:' has encountered a problem