Как инициализировать поле со списком в форме?

#excel #vba #combobox #userform

#excel #vba #поле со списком #пользовательская форма

Вопрос:

Насколько я понимаю, код инициализации запускается при вызове «New UserForm2».

Ниже приведен код, который вызывает новую пользовательскую форму, и код, связанный с пользовательской формой.

Я прошел через отладчик и наблюдал, как он выполняет код инициализации, но это никак не влияет на форму. Поле со списком по-прежнему пустое.

 If TabID = "5 Client List" Then
    With New UserForm2
        .Show
        If Not .IsCancelled Then
            If InStr(TarSheet, "5.1") Then
                Call General_Transfer(TabID, TarSheet, 28, "Yes")
            End If
            TarSheet = ""
        End If
    End With
    Exit Sub
End If
 
 ' UserForm2 Code
Option Explicit
'@Folder("UI")
Private cancelled As Boolean
 
Public Property Get IsCancelled() As Boolean
    IsCancelled = cancelled
End Property
 
Private Sub CommandButton1_Click()
    TarSheet = Me.ComboBox1.Value
    Hide
End Sub
 
Private Sub CommandButton2_Click()
    TarSheet = ""
    OnCancel
End Sub
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = VbQueryClose.vbFormControlMenu Then
        Cancel = True
        OnCancel
    End If 
End Sub
 
Private Sub OnCancel()
    cancelled = True
    Hide
End Sub

Private Sub UserForm_Initialize()
    UserForm2.ComboBox1.AddItem "5.1 Client List LTS"
End Sub
 

Комментарии:

1. Вы пробовали Me вместо UserForm2 ? Ваш код работает для меня, как указано…

2. Это действительно так… Me работает нормально. Спасибо за предложение.