【问题标题】:Counting Checkboxes on a page of a multipage userforms计算多页用户表单页面上的复选框
【发布时间】:2017-07-18 17:52:21
【问题描述】:

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

【问题讨论】:

    标签: excel vba checkbox userform multipage


    【解决方案1】:

    MultiPage 控件的一个特殊之处在于,与大多数 VBA 不同,它的索引是从 0 开始的。

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

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

    然后您的代码应该可以工作了。

    【讨论】:

    • 感谢您的回复,但我不确定这是否是问题所在。这个多页有六页(我正在考虑基于 0 的索引)。此代码是否适用于您的系统?这可能与我在模块中有此代码的事实有关吗?
    • @Cptn_Hammer:奇怪。是的,它在我的系统上按预期工作。我真的只是从一个模块中尝试过(再次!)它表现正确。
    【解决方案2】:

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

    Dim Ctl as MSForms.control
    

    【讨论】:

      猜你喜欢
      • 2013-04-21
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 2014-07-09
      • 2012-05-28
      相关资源
      最近更新 更多