Здравствуйте, уважаемые знатоки VBA.
Давненько не захаживал на форум, но вот случилась такая оказия: написал модуль класса (2 штуки), один работает на "УРА", а вот со вторым проблема.
Вот первый:
Option Explicit
' Событие клик на форме UF_VYBM
Public WithEvents Ch_Labels As MSForms.Label
Private Sub Ch_Labels_Click()
' Вызов программы SVODO с параметрами номер метки
If PS_UFN = "UF_VybM" Then SvodO Val(Right(Ch_Labels.Name, 2))
End Sub
Вот его вызов:
Option Explicit
Private Sub UserForm_Initialize()
Dim C_Lbl As Control
For Each C_Lbl In Controls
' Перебор контролов в форме UF_VYBM
If C_Lbl.TabIndex > 0 And C_Lbl.TabIndex < 35 Then Set PAO_Lbls(C_Lbl.TabIndex).Ch_Labels = Me.Controls(C_Lbl.Name)
Next
End Sub
В этом случае работаю с Label`s
А вот второй, который не желает работать:
Option Explicit
' Событие клик на форме UF_PRO
Public WithEvents Ch_Controls As MSForms.Control
Private Sub Ch_Controls_Exit(ByVal Cancel As MSForms.ReturnBoolean)
' Вызов программы CTRLCLK с параметром имя контрола
If PS_UFN = "UF_PRO" Then CtrlClk Ch_Controls.Name
End Sub
И, соответственно, его вызов:
Option Explicit
Private Sub UserForm_Initialize()
Dim C_Ctrl As Control
For Each C_Ctrl In Controls
' Перебор контролов в форме UF_PRO
Set PAO_Ctrl(C_Ctrl.TabIndex).Ch_Controls = Me.Controls(C_Ctrl.Name)
Next
End Sub
В этом случае пытаюсь работать со всеми контролами.
Объявлены оба массива как PUBLIC, в отдельном модуле:
Public PAO_Lbls(1 To 34) As New CLSM_Labels ' Массив LABEL`ов
Public PAO_Ctrl(1 To 40) As New CLSM_Controls ' Массив CONTROL`ов
Где накосячил - никак не пойму.
Очень прошу ткнуть меня в нужном направлении, дабы понять кто, где, кого...