[英]Add item to the beginning of my ComboBox?
我正在嘗試在 ComboBox 的頂部添加項目。
我試過這個:
iCount = 1
Worksheets("Sheet1").Activate
With Worksheets("Sheet1")
Range("A2").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value = ComboBox1.Value And ActiveCell.Offset(0, 17) <> "" Then
ComboBox3.AddItem
ComboBox3.List(iCount - 1, 0) = (ActiveCell.Offset(0, 2))
iCount = iCount + 1
End If
If ActiveCell.Value = "ANY" And ActiveCell.Offset(0, 17) <> "" Then
ComboBox3.AddItem
ComboBox3.List(iCount - 1, 0) = (ActiveCell.Offset(0, 2))
iCount = iCount + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
End With
使用此代碼,無論項目在 ComboBox 中的順序如何,都會添加這些項目。
我還嘗試創建兩個Do Until
函數,但如果我這樣做,我的 sub 真的太長了(我的數據庫中有超過 10 000 行)。
ComboBox3.AddItem (ActiveCell.Offset(0, 2)), 0
ComboBox3.List(iCount - 1, 0) = (ActiveCell.Offset(0, 2))
ComboBox3.List(iCount - 1, 1) = Round(ActiveCell.Offset(0, 9), 2)
ComboBox3.List(iCount - 1, 2) = (ActiveCell.Offset(0, 1))
通過這次嘗試,我只會在第一列的第一行添加(ActiveCell.Offset(0, 2))
,但如何添加其他列,如Round(ActiveCell.Offset(0, 9), 2)
& (ActiveCell.Offset(0, 1))
在第 2 列和第 3 列中。總而言之,我如何組合.AddItem
和.List
?
這里:
ComboBox3.AddItem ActiveCell.Offset(0, 2), 0
ComboBox3.List(0, 0) = (ActiveCell.Offset(0, 2))
ComboBox3.List(0, 1) = Round(ActiveCell.Offset(0, 9), 2)
ComboBox3.List(0, 2) = (ActiveCell.Offset(0, 1))
基於這里的braX評論是一個結構化的答案:
iCount = 1
Worksheets("Sheet1").Activate
With Worksheets("Sheet1")
Range("A2").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value = ComboBox1.Value And ActiveCell.Offset(0, 17) <> "" Then
ComboBox3.AddItem , 0
ComboBox3.List(0, 0) = (ActiveCell.Offset(0, 2))
ComboBox3.List(0, 1) = Round(ActiveCell.Offset(0, 9), 2)
ComboBox3.List(0, 2) = (ActiveCell.Offset(0, 1))
iCount = iCount + 1
End If
If ActiveCell.Value = "ANY" And ActiveCell.Offset(0, 17) <> "" Then
ComboBox3.AddItem
ComboBox3.List(iCount - 1, 0) = (ActiveCell.Offset(0, 2))
iCount = iCount + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
End With
通過這樣做,所有特定行都將添加到ComboBox3
的頂部。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.