Arrays 使用复选框创建数组

Arrays 使用复选框创建数组,arrays,excel,vba,checkbox,Arrays,Excel,Vba,Checkbox,我为什么要这么做的背景。 我正在为工作创建一个程序,这是完成这个过程的许多方法之一,用户选择他们已经执行的测试,大约50个可能的测试,使用我制作的用户表单。根据选中的复选框,它在每个用户表单中运行,而无需选择其他测试 i、 e.如果他们选择1,2,5,那么程序最终将加载UserForm1->UserForm2->notuserform3->notuserform4->UseeForm5 其思想是用户选择他们想要的选项,然后根据所选的选项创建一个数组,如果用户没有选择该选项,则为0;如果用户选择了

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

i、 e.如果他们选择1,2,5,那么程序最终将加载UserForm1->UserForm2->notuserform3->notuserform4->UseeForm5

其思想是用户选择他们想要的选项,然后根据所选的选项创建一个数组,如果用户没有选择该选项,则为0;如果用户选择了,则为(1,2,3,4…),则该数字取决于选中的复选框。i、 e检查框1=1检查框2=2等

从这个数组中,我想我可以使用excel中带有for循环的.find功能选择正确的用户表单

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

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错误对象

当调试时,如果CheckBox1.Value=True,则在第


我的代码哪里出错了?这可能吗?我不确定是否可能

您需要显式引用userform来计算复选框值

 If userformX.CheckBox1.Value = True Then

您需要显式引用userform来计算复选框值

 If userformX.CheckBox1.Value = True Then

帮你自己一个忙,学会正确缩进你的代码——或者粘贴它,点击“缩进!”按钮(免责声明:我拥有该网站)。。。然后谢谢你自己=)@Mat'sMug哈哈,是的,我真的需要,我只是使用这种格式,因为我发现它在VBA上缩进4次,然后粘贴在这里,而不是单独做每一行。我确信有一种比我当前的方法更容易粘贴代码的方法:P@Mat不过,像那个自鸣得意的网站一样,似乎运行得非常好。您可以直接从VBE编辑器粘贴到此处,然后选择所有代码并按Ctrl+K或单击编辑工具栏中的
{}
按钮,轻松获得格式正确的代码块(将自动为每行添加4个前导空格)看看这个问题,帮你自己一个忙,学会正确缩进你的代码-或粘贴它,点击“缩进!”按钮(免责声明:我拥有该网站)。。。然后谢谢你自己=)@Mat'sMug哈哈,是的,我真的需要,我只是使用这种格式,因为我发现它在VBA上缩进4次,然后粘贴在这里,而不是单独做每一行。我确信有一种比我当前的方法更容易粘贴代码的方法:P@Mat不过,像那个自鸣得意的网站一样,似乎运行得非常好。您可以通过直接从VBE编辑器粘贴到此处,然后选择所有代码并按Ctrl+K或单击编辑工具栏中的
{}
按钮(将自动为每行添加4个前导空格),轻松获得格式正确的代码块。有关帮助,请参见此问题