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