将所选列表框项添加到文本框,而不重置VBA Excel中的文本框

时间:2014-05-02 21:03:09

标签: vba excel-vba excel

目前,我正在尝试允许用户单击列表框中的项目(listBusFun)并添加到文本框(TextBox2)。

我需要在输入新选择时不重置文本框。

他们可能只从列表框中选择一个项目,或者他们可以一次选择多个项目 - 但它们都需要添加到文本框中。

如果更容易,我也可以在按钮后面编码。

我不确定如何做到这一点,但如果你能通过评论代码来帮助我,让我能理解,我会很感激。

试图写这个:

Private Sub btnAddBusinessFunction_Click()  
TextBox2.Text = listBusFun.Text  
End Sub  

1 个答案:

答案 0 :(得分:1)

最简单地将其附加到按钮上。您需要迭代列表框中的项目,检查是否已选中每个项目,如果已​​选中,则将其附加/连接到另一个字符串。

  

我没有找到任何VBA特定答案

因为你没有问正确的问题。这不是关于列表框和文本框或任何东西的问题,它是简单的字符串连接,只是稍微复杂一点,需要迭代一个项目列表,如果选择了项目,则附加到字符串。

您了解自己的代码吗?每次按下按钮,它只是覆盖文本框中的值:

Private Sub btnAddBusinessFunction_Click()  
    TextBox2.Text = listBusFun.Text  
End Sub  

既然我描述了这个过程,那会更有意义吗?

Private Sub btnAddBusinessFunction_Click()
    Dim str As String
    Dim i As Long

    'iterate the listbox items and concatente a string
    ' which we will append to the textbox's existing text
    For i = 0 To ListBusFun.ListCount - 1

        If ListBusFun.Selected(i) Then
            If str <> vbNullString Then str = str & ", "
            str = str & ListBusFun.List(i)
        End If

    Next

    'Append this to the existing text in the textbox
    TextBox2.Text = TextBox2.Text & str

End Sub