如何在组合框中列出项目?

时间:2015-01-22 04:51:45

标签: excel vba excel-vba

我创建了一个UserForm,其中包含一个空的ComboBox,其中包含一系列用于选择的公式(基本连接)文本。我得到了以下代码但失败了。

Private Sub specList_change()
    Dim i As Integer
    Dim ListSpec As String
    'Clear whatever in listbox
    Me.specList.Clear
    Me.lineText = ""
    Me.partText = ""
    'Get none empty data from P6:Pxx
    i = 5
    Do
        DoEvents
        i = i + 1
        ListSpec = Sheets("SPEC CHART").Range("P" & i)
        'Add data into the listbox till all data in SPEC CHART worksheet is empty
        If Len(ListSpec) <> 0 Then specList.AddItem (ListSpec)
    Loop Until ListSpec = ""
End Sub

感谢您的指导。

1 个答案:

答案 0 :(得分:0)

改为使用UserForm_Initialize事件。

Private Sub UserForm_Initialize()
    Dim r As Range, lr As Long
    With Sheets("SPEC CHART")
        lr = .Range("P" & .Rows.Count).End(xlUp).Row
        If lr > 5 Then
            Set r = .Range("P6:P" & lr)
            Me.speclist.RowSource = r.Address(, , , True)
        End If
    End With
End Sub

如果源是Range,则可以使用RowSource属性 您还可以使用List属性,如下所示:

Me.speclist.List = Application.Transpose(r)

这取代me.speclist.RowSource = r.Address(, , , True)。 HTH。