我正在尝试计算在用户表单的特定页面上检查过的复选框的数量。我在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对象或类不支持事件集。
答案 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