VB复选框全选和部分选择的问题

需要达到的效果:

如果全选复选框选中,那么选项1和选项2复选框全部选中;如果全选复选框为空,那么选项1和选项2复选框全部取消

如果选项1、选项2其中一个没选中,那么全选复选框为空

如果选项1和选项2都选中,复选框选中

选项1和选项2为控件数组,均为复选框,选项1的下标为0,选项2的下标为1

代码如下

版本一:

Private Sub Check1_Click()  '编辑全选复选框功能
    If Check1.Value = 1 Then
        Check2(0).Value = 1
        Check2(0).Value = 1
    ElseIf Check1.Value = 0 Then
        Check2(1).Value = 0
        Check2(1).Value = 0
    End If
End Sub

Private Sub Check2_Click(Index As Integer)  '编辑选项1和选项2的功能,这两个为控件数组,选项1的下标为0,选项2的下标为1,均为复选框控件

    If (Check2(0).Value = 0 And Check2(1).Value = 0) Then  '分情况进行判断
    
    Check1.Value = 0
    
    ElseIf (Check2(0).Value = 1 And Check2(1).Value = 1) Then
    
    Check1.Value = 1
    
    ElseIf (Check2(0).Value = 0 Or Check2(1).Value = 0) Then
    Check1.Value = 0
    
    ElseIf (Check2(0).Value = 0 And Check2(1).Value = 1) Or (Check2(0).Value = 1 And Check2(1).Value = 0) Then
    Check1.Value = 0
    
    End If
    
End Sub

版本二:

Private Sub Check1_Click()  '编辑全选复选框功能
    If Check1.Value = 1 Then
        Do While Index <= Check2.UBound
            Check2(Index).Value = 1
            Index = Index + 1
        Loop
    ElseIf Check1.Value = 0 Then
        Do While Index <= Check2.UBound
            Check2(Index).Value = 0
            Index = Index + 1
        Loop
    End If
End Sub

Private Sub Check2_Click(Index As Integer)  '编辑选项1和选项2的功能,这两个为控件数组,选项1的下标为0,选项2的下标为1,均为复选框控件

    If (Check2(0).Value = 0 Or Check2(1).Value = 0) Then  '如果选项1和选项2其中1个没被选,那么全选复选框就不会被选

    Check1.Value = 0

    ElseIf (Check2(0).Value = 1 And Check2(1).Value = 1) Then  '如果选项1和选项2都被选了,那么全选复选框就会被选上

    Check1.Value = 1
    
    End If
End Sub

目前运行后,全选没有问题,但是选上了选项1和选项2之后,再次单击选项1以达到选项1和全选的复选框为空时,选项2的复选框也为空了,经过断点调试发现,再次单击选项1以达到选项1和全选的复选框为空时
运行了Check2的代码后又运行了Check1的代码,请问如何实现开头的所述的效果?
另外运行了Check2的代码没有点选Check1(全选复选框)为何就运行了Check1的代码?

img