如何根据Combobox(VBA)中的用户选择填写文本框

时间:2015-05-19 14:13:44

标签: vba combobox textbox

根据组合框的选择,我在填写用户表单中的文本框时遇到了麻烦。我也尝试过使用.Caption,.Value和.Text。我在下面附上了一个我想要做的事情的例子。此外,我还不完全理解为什么组合框必须是Me.combobox,因为userform的名称是“userform”。如果需要更多的澄清,只需要问一下,生病并尝试帮助你。

Private Sub UserForm_Initialize()

    'combobox for column thickness
    Me.ComboBox1.AddItem "W6 x 15"
    Me.ComboBox1.AddItem "W8 x 2"
    Me.ComboBox1.AddItem "W10 x 30 "

'trying to fill in textbox based on combobox
    If Me.ComboBox1.Text = "W6 x 15" Then
        UserForm1.TextBox17.Text = "W6 x 15"
    ElseIf Me.Combobox1.Text = "W8 x 24" Then
        Userform1.textbox17.Text = "W8 x 24"
    End If

1 个答案:

答案 0 :(得分:1)

这里的问题是你只是初始化组合框。组合框在其值发生变化时会发生事件。当您必须更新文本框的文本时,请尝试以下操作:

Private Sub UserForm_Initialize()
    Me.ComboBox1.AddItem "W6 x 15"
    Me.ComboBox1.AddItem "W8 x 2"
    Me.ComboBox1.AddItem "W10 x 30"

End Sub

哦,还有,"我"引用"父母"对象,在本例中是userform。如果您要使用" UserForm1"而不是"我",它也会起作用。

Private Sub ComboBox1_Change()
    Me.TextBox1.Text = Me.ComboBox1.Value
End Sub