Подсчет флажков на странице многостраничных пользовательских форм

Я пытаюсь подсчитать количество флажков, которые были отмечены на определенной странице пользовательской формы. Я использую 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 Объект или класс не поддерживает набор событий.

2 ответа

Решение

Это особенность с MultiPage контролировать, что, в отличие от большинства вещей VBA, его индексы основаны на 0.

Поэтому ваша вторая страница будет Pages(1) и не Pages(2), поскольку Pages(0) это первая страница / страница по умолчанию. Если вы измените свою строку ошибки на следующее:

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

Ваш код должен работать.

Причина может быть в том, что вы не определили переменную управления туром правильно. ты можешь попробовать

Dim Ctl as MSForms.control
Другие вопросы по тегам