使用复选框创建数组

时间:2017-12-21 15:28:30

标签: arrays excel vba checkbox

为什么我试图这样做的背景。 我正在创建一个工作程序,这是执行此过程的众多方法之一,用户选择他们执行的测试,使用我已经制作的用户形式进行大约50次可能的测试。从选择开始,它根据选中的复选框运行每个用户表单,而无需选择其他测试。

即。如果他们选择1,2,5那么程序最终会加载UserForm1 - > UserForm2 - > NOT UserForm3 - > NOT UserForm4 - > UseeForm5

这个想法是用户选择他们想要的选项然后根据选择的选项创建一个0的数组,如果他们没有选择选项或(1,2,3,4 ...)如果他们这样做,这个数字取决于选择了哪个复选框。即CheckBox1 = 1 CheckBox2 = 2等。

从这个数组中,我认为我可以使用for循环中的.cel功能选择正确的用户形式。

但是当我在下面运行我的代码时,我遇到了一个问题,

Sub List_Create()

Dim tests(5) As Integer

        If CheckBox1.Value = True Then
        tests(0) = 1
        Else: tests(0) = 0
        End If
        If CheckBox2.Value = True Then
        tests(1) = 2
        Else: tests(1) = 0
        End If
        If CheckBox3.Value = True Then
        tests(2) = 3
        Else: tests(2)= 0
        End If
        If CheckBox4.Value = True Then
        tests(3) = 4
        Else: tests(3) = 0
        End If
        If CheckBox5.Value = True Then
        tests(4) = 5
        Else: tests(4) = 0
        End If

End Sub

我得到了

  

运行时需要424错误对象。

当调试时,If CheckBox1.Value = True Then

我的代码出了什么问题?这可能吗,我不确定它是不是?

1 个答案:

答案 0 :(得分:2)

您需要明确引用userform以评估复选框值。

 If userformX.CheckBox1.Value = True Then