2015-05-19 77 views
1

我遇到了麻煩,它根據選擇的組合框填充我的用戶表單中的文本框。我也試過使用.Caption,.Value和.Text。我附上了一個我想要做的事情的例子。此外,我不完全理解爲什麼組合框必須是Me.combobox時,用戶窗體的名稱是「用戶窗體」。如果需要更多的澄清,只要問和病就嘗試和幫助你。如何在Combobox(VBA)中根據用戶選擇填寫文本框

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 
+0

您是否嘗試在用戶選擇組合框中的某些內容時嘗試更新文本框或者是否嘗試初始化文本框?另外,你應該用一個描述性名稱命名組合框和文本框,否則,幾乎不可能理解代碼。 – OpiesDad

回答

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 

哦也,守信用「我」引用「父」對象,在這種情況下是用戶窗體。如果您要使用「UserForm1」而不是「我」,它也會起作用。

Private Sub ComboBox1_Change() 
    Me.TextBox1.Text = Me.ComboBox1.Value 
End Sub 
相關問題