我创建了一个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
感谢您的指导。
答案 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。