2013-08-21 4 views
0

Excel VBA의 ComboBox에 문제가 있습니다. 어떤 도움을 주셔서 감사합니다. 이것은 내가 뭘하려고 오전입니다 :첫 번째 콤보 상자의 변수로 두 번째 콤보 상자를 동적으로 채 웁니다.

정의 폼에서
  • 는, 사용자가 "ComboBox_groesse"(. 고정 행 원본 입력은 숫자와 일반 콤보)라는 이름의 첫 번째 콤보 상자에서 입력을 선택
  • 때 DropButton "ComboBox_config_1"이라는 이름의 두 번째 ComboBox를 클릭하면이 ComboBox는 선택한 ComboBox_groesse.value 값과 동일한 NamedRange "KonfiRange_1_1"의 값으로 채워집니다.
  • NamedRange는 2 개의 열이있는 테이블에 있습니다 . 첫 번째 열은 숫자가있는 NamedRange이고 두 번째 열은 텍스트입니다.
  • 나는 상대의 텍스트가 나는 아래의 코드를 작성했습니다하지만 난 빈 ComboBox_config_1을 얻고있다

ComboBox_groesse.value에 동일한 값과 함께 두 번째 콤보 상자에 나타 싶습니다. 어느 누구도 도와 주실 수 있습니까? 미리 감사드립니다!

Private Sub ComboBox_config_1_DropButtonClick() 

    Dim teil As Range 

    For Each teil In Tabelle1.Range("KonfiRange_1_1") 

    If teil.Value = ComboBox_groesse.Value Then 

     With Me.ComboBox_config_1 

     .AddItem teil.Value 

     End With 

    End If 
    Next teil 

답변

0

나는 그렇게처럼 ComboBox_groesse_Change 이벤트에서이 작업을 둘 것입니다 : 그것은 위대한 작품을

Private Sub ComboBox_groesse_Change() 

    Dim rngFound As Range 
    Dim strFirst As String 
    Dim strList As String 

    Me.ComboBox_config_1.Clear 
    If Me.ComboBox_groesse.ListIndex = -1 Then Exit Sub 'Nothing selected 

    With Range("KonfiRange_1_1") 
     Set rngFound = .Find(Me.ComboBox_groesse.Text, .Cells(.Cells.Count), xlValues, xlWhole) 
     If Not rngFound Is Nothing Then 
      strFirst = rngFound.Address 
      Do 
       strList = strList & "|" & rngFound.Offset(, 1).Text 
       Set rngFound = .Find(Me.ComboBox_groesse.Text, rngFound, xlValues, xlWhole) 
      Loop While rngFound.Address <> strFirst 
     End If 
    End With 

    If Len(strList) > 0 Then Me.ComboBox_config_1.List = Split(Mid(strList, 2), "|") 

    Set rngFound = Nothing 

End Sub 
+0

. 감사합니다 tigeravatar! –

관련 문제