2015-01-22 2 views
1

을 빈 으로 작성하여 사용자가 선택할 수 있도록 공식화 된 (기본 연결) 텍스트 목록을 채 웁니다. 아래 코드가 있지만 실패했습니다.콤보 상자에 항목을 나열하는 방법?

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

대신 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 

또한 소스가 범위 인 경우 RowSource 속성을 사용할 수 있습니다. me.speclist.RowSource = r.Address(, , , True)의 장소에

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

:
은 또한이 같은 List 속성을 사용할 수 있습니다. HTH.

관련 문제