Tôi có 4 + ComboBox trên biểu mẫu người dùng. Khi họ bắn, họ bắn cùng một sự kiện. Những gì tôi đang cố gắng làm là tìm hiểu ComboBox nào đã kích hoạt sự kiện. ComboBoxes được tạo tùy thuộc vào số lượng thành phần có. Mã tạo ComboBoxes được hiển thị bên dưới:Xác định ComboBox của VBA Excel
For j = 0 To UBound(ComponentList) - 1
'Set Label
num = j + 1
Set control = UserForm1.Controls.Add("Forms.Label.1", "ComponentLabel" & CStr(num) & ":", True)
With control
.Caption = "Component " & CStr(num)
.Left = 30
.Top = Height
.Height = 20
.Width = 100
.Visible = True
End With
'set ComboBox
Set combo = UserForm1.Controls.Add("Forms.ComboBox.1", "Component" & num & ":", True)
With combo
.List = ComponentList()
.Left = 150
.Top = Height
.Height = 20
.Width = 50
.Visible = True
Set cButton = New clsButton
Set cButton.combobox = combo
coll.Add cButton
End With
Height = Height + 30
Next j
Điều này hoạt động tốt và tôi có thể nhận giá trị mà người dùng đã chọn, NHƯNG tôi không thể tìm thấy ComboBox nào đã được sử dụng. Mã này dưới đây là sự kiện cho nó kích hoạt (clsButton
):
Public WithEvents btn As MSForms.CommandButton
Public WithEvents combobox As MSForms.combobox
Private combolist() As String
Private Sub btn_Click()
If btn.Caption = "Cancel" Then
MsgBox "Cancel"
Unload UserForm1
Variables.ComponentSelectionError = False
ElseIf btn.Caption = "Enter" Then
MsgBox "enter"
Unload UserForm1
Variables.ComponentSelectionError = True
End If
End Sub
Private Sub combobox_Click()
MsgBox combobox.Value
End Sub
chút mã này trên được vui lòng làm việc trên bởi Doug Glancy để có được những sự kiện làm việc với mã được tạo ComboBoxes.
Làm cách nào để có được ComboBox đã kích hoạt sự kiện? tức là tên hoặc một số hình thức nhận dạng khác.
Cảm ơn điều này đã làm việc, tôi cũng tìm thấy một giải pháp sau nhiều giờ tìm kiếm và bây giờ tôi kết hợp cả hai. Cảm ơn bạn đã giúp đỡ! – NoLiver92