首页 > 解决方案 > 6个复选框,2组3个,1为真时需要1,2 & 3为假,与4,5 & 6类似但也必须独立工作

问题描述

Excel 宏非常新,我已经设法用 6 个盒子做我想做的事,但它们需要作为 2 组 3 组工作。

该代码允许我一次只能打开 1 个 CheckBox,但我需要对框 1-3 和 4-6 分别进行此操作

所以问题 1, 3 个可能的答案,但只能勾选 1,然后当我转到问题 2 时,再次只有一个可能的答案,但答案不能关闭之前的任何答案,反之亦然

这是代码:-

Sub CheckBox1()

Dim cb As CheckBox

For Each cb In ActiveSheet.CheckBoxes
    If cb.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then
        cb.Value = ActiveSheet.CheckBoxes("Check Box 2").Value = True
End If

Next

End Sub
Sub CheckBox2()

Dim cb As CheckBox

For Each cb In ActiveSheet.CheckBoxes
    If cb.Name <> ActiveSheet.CheckBoxes("Check Box 2").Name Then
        cb.Value = ActiveSheet.CheckBoxes("Check Box 3").Value = True
End If

Next

End Sub
Sub CheckBox3()

Dim cb As CheckBox

For Each cb In ActiveSheet.CheckBoxes
    If cb.Name <> ActiveSheet.CheckBoxes("Check Box 3").Name Then
        cb.Value = ActiveSheet.CheckBoxes("Check Box 1").Value = True
End If

Next

End Sub
Sub CheckBox4()

Dim cb As CheckBox

For Each cb In ActiveSheet.CheckBoxes
    If cb.Name <> ActiveSheet.CheckBoxes("Check Box 4").Name Then
        cb.Value = ActiveSheet.CheckBoxes("Check Box 5").Value = True
End If

Next

End Sub
Sub CheckBox5()

Dim cb As CheckBox

For Each cb In ActiveSheet.CheckBoxes
    If cb.Name <> ActiveSheet.CheckBoxes("Check Box 5").Name Then
        cb.Value = ActiveSheet.CheckBoxes("Check Box 6").Value = True
End If

Next

End Sub
Sub CheckBox6()

Dim cb As CheckBox

For Each cb In ActiveSheet.CheckBoxes
    If cb.Name <> ActiveSheet.CheckBoxes("Check Box 6").Name Then
        cb.Value = ActiveSheet.CheckBoxes("Check Box 4").Value = True
End If

Next

End Sub

标签: excelvba

解决方案


推荐阅读