簡體   English   中英

添加項目到我的 ComboBox 的開頭?

[英]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 行)。

嘗試 1

    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.

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