簡體   English   中英

VBA Excel-將組合框項目添加到列表框

[英]VBA excel - adding combo box item to list box

伙計們,我希望有人可以幫助我解決這個問題。 我有一個組合框,其中包含來自命名范圍的數據,我想從組合框中選擇一個值並將其添加到列表框中。

目前,我可以使用按鈕將一個項目添加到列表框中,但是一旦添加另一個項目,它就會覆蓋當前項目。

另外,如果列表框中已經有一些值,則它必須能夠在底部添加一個項目。

我認為這與找到最后一行有關,但我不確定,任何幫助將不勝感激:)

問題的形象

Dim i As Integer

With Me.lb_lease

.ColumnCount = 3
.ColumnWidths = "200;50;50"
.AddItem
.List(i, 0) = cbox_hardware.Column(0)
.List(i, 1) = cbox_hardware.Column(1)
.List(i, 2) = cbox_hardware.Column(2)
i = i + 1

End With

我建議分開設置列表框和向其中添加項目的操作。 下面的過程將設置該框並清除所有現有內容。 更改工作表和列表框的名稱以匹配您的情況。 如果列表框位於用戶窗體中,則該代碼也將起作用。

Private Sub ResetListBox()

    With Worksheets("LibraryAccount").ListBox1
        .ColumnCount = 3
        .ColumnWidths = "80;50;50"
        .Clear                          ' delete current list
    End With
End Sub

下一個過程向其中添加一個項目。 它需要用分號分隔的字符串,例如“ One; Two; Three”。 您可以使用ListIndex從組合框結果中將其連接起來以標識該行。 該過程將反匯編該字符串並將其添加到列表的底部。 工作表和列表框的名稱必須更改。

Private Sub AddToListBox(AddArray As String)

    Dim Arr() As String
    Dim i As Integer
    Dim C As Long

    Arr = Split(AddArray, ";")

    With Worksheets("LibraryAccount").ListBox1
        i = .ListCount
        .AddItem
        For C = 0 To 2
            .List(i, C) = Arr(C)
        Next C
    End With
End Sub

以下步驟用於測試上述步驟。 您可以運行ResetListbox ,然后多次調用TestAdd

Private Sub TestAdd()
    AddToListBox "One;Two;Three"
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM