[英]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.