Chi Ller Ответов: 1

Ошибка при динамическом создании флажка в форме пользователя


Я нашел следующий код на этой веб-странице:
http://www.office-loesung.de/ftopic220336_0_0_asc.php
Public WithEvents cmdCommandButton As CommandButton
Option Explicit

Dim CommandButtons(15) As clsCommandButtons

Private Sub UserForm_Initialize()
Dim zaehler As Long
For zaehler = 0 To 15
    Set CommandButtons(zaehler) = New clsCommandButtons
    Set CommandButtons(zaehler).cmdCommandButton = Me.Controls(zaehler)
Next
End Sub
Private Sub UserForm_Terminate()
Dim zaehler As Long
For zaehler = 0 To 15
    Set CommandButtons(zaehler) = Nothing
Next
End Sub

Сначала я изменил части кода, и это не сработало, я получил следующее сообщение:
Ошибка компиляции: пользовательский тип не определен

Поэтому я использовал исходный код и попробовал еще раз, но получил ту же ошибку. Что - то не так с кодом?


Редактировать:
Он работает после помещения первой строки в дополнительный класс с именем clsCommandButtons. К сожалению, это не совсем ясно в тексте веб-страницы

1 Ответов

Рейтинг:
4

Wendelius

Скорее всего, вы не скопировали весь пример целиком. Код использует класс с именем clsCommandButtons здесь

Dim CommandButtons(15) As clsCommandButtons

Но если вы не включили определение для этого класса в свой проект, компиляция завершится неудачей.

Поэтому еще раз взгляните на исходный код и проверьте, существует ли это определение. Обратите внимание, что он может находиться в отдельном модуле.


Chi Ller

На странице нет определения для clsCommandButtons и нигде нет отметки как или где или что вы должны определить класс

Wendelius

Тогда это звучит как жук... Мне очень жаль, но я больше ничем не могу вам помочь... Если возможно, попробуйте связаться с автором проекта.

Chi Ller

Что ж, я буду искать другой путь. Как я могу удалить этот вопрос?

Wendelius

Нет никакой необходимости удалять этот вопрос. Возможно, кто-то увидит его, кто знает этот точный проект.