Excel 计算多页userforms页面上的复选框

Excel 计算多页userforms页面上的复选框,excel,vba,checkbox,userform,multipage,Excel,Vba,Checkbox,Userform,Multipage,我试图计算在某个用户表单的特定页面上已选中的复选框的数量。我将VBA与Excel 2010一起使用 这是我的代码: 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 Char

我试图计算在某个用户表单的特定页面上已选中的复选框的数量。我将VBA与Excel 2010一起使用

这是我的代码:

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对象或类不支持事件集。

这是
多页控件的一个特性,与大多数VBA不同,它的索引是基于0的

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

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

您的代码应该可以工作。

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

Dim Ctl as MSForms.control

我很感激你的回答,但我不确定这是问题所在。这个多页有六个页面(我考虑了基于0的索引)。此代码在您的系统上工作吗?这可能与我在一个模块中有这个代码有关吗?@Cptn\u Hammer:奇怪。是的,它在我的系统上按预期工作。我只是在一个模块上尝试了一下(再尝试一次!),结果它的行为是正确的。