我有一个用户表单,上面有一个单击按钮。单击此按钮时,会动态创建一个组合框。当从此组合框中选择特定值时,我想做一些事情,但没有触发更改事件。可能是什么原因。以下是我放在UserForm1模块中的代码。
Private WithEvents ComboBox1 As MSForms.ComboBox
Private Sub ClickButton_Click()
'Create combo box
Dim ComboBox1 As MSForms.ComboBox
Set ComboBox1 = Me.Controls.Add("Forms.ComboBox.1")
With ComboBox1
.Left = 160
.Top = 50
.Width = 70
.Height = 20
.AddItem ("> than")
.AddItem ("< than")
.AddItem ("Max")
.AddItem ("Min")
.Enabled = True
.BackColor = RGB(255, 255, 255)
.ForeColor = RGB(0, 0, 0)
.SpecialEffect = fmSpecialEffectFlat
.Font.Size = 12
.Font.Bold = False
.Font.Name = "Arial"
.TabIndex = 2
End With
DoEvents
ComboBox1.SetFocus
End Sub
Private Sub ComboBox1_Change()
Dim inputNumber As Variant
If ComboBox1.Value = "> than" Then
inputNumber = InputBox("Enter a number:")
'Check if the input is valid number
If IsNumeric(inputNumber) Then
ComboBox1.Value = ComboBox2.Value & " " & inputNumber
Else
MsgBox "Invalid input"
End If
End If
End Sub
1条答案
按热度按时间toiithl61#
您需要使用的方法如下所述:https://stackoverflow.com/a/8986622/9852011,但对于您的特定情况,您需要执行以下操作:
这是应该在用户窗体模块中的代码:
然后,在项目中插入一个新的类模块,将其命名为“ComboBoxEventHandler”,并将以下代码放入其中:
我不知道“ComboBox2”是什么,但是为了这个例子,我假设它是一个已经存在于UserForm中的ComboBox。