计算多页用户表单页面上的复选框

时间:2014-07-27 20:59:27

标签: excel vba checkbox userform multipage

我正在尝试计算在用户表单的特定页面上检查过的复选框的数量。我在Excel 2010中使用VBA。

这是我的代码:

Public Sub AutoCount()
Dim ctl As control
Dim j As Long

For Each ctl In CharacterBuilder.MultiPage1.Pages(2).Controls' error occurs here
    If TypeOf ctl Is msforms.CheckBox Then
    If CharacterBuilder.Controls(ctl.name).Value = True Then
        j = j + 1
    End If
    End If
Next
CharacterBuilder.Remaining.Caption = j
Unload CharacterBuilder.Skills 'Not sure what this does
End Sub

我得到运行时错误459对象或类不支持事件集。

2 个答案:

答案 0 :(得分:0)

MultiPage 控制的一个特点是,与大多数VBA不同,它的索引是从0开始的。

因此,您的第二页将是Pages(1)而不是Pages(2),因为Pages(0)是第一个/默认页面。如果您将错误行更改为以下内容:

For Each ctl In CharacterBuilder.MultiPage1.Pages(1).Controls

然后你的代码就可以了。

答案 1 :(得分:0)

原因可能是因为您没有正确定义巡视控制变量。 你可以尝试

Dim Ctl as MSForms.control