2013-08-21 159 views
0

我在Excel VBA中遇到了ComboBox问题。任何帮助,高度赞赏。 这就是我要做的:从第一个ComboBox动态填充第二个Combobox变量

  • 在用户窗体,用户名为“ComboBox_groesse”(普通的组合框固定行来源的输入是数字)第一个组合框选择一个输入
  • 当DropButton单击名为“ComboBox_config_1”的第二个ComboBox组合框,该组合框将填充来自NamedRange“KonfiRange_1_1”的值,该值等于所选ComboBox_groesse.value的值
  • NamedRange位于具有2列的表中。第一列是带数字的NamedRange,第二列带有文本。
  • 我想对应的文本在第二组合框一起出现与相等的值,以ComboBox_groesse.value

我已经写了下面的代码,但我得到一个空白ComboBox_config_1。任何人都可以帮忙吗?提前致谢!

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! –

相关问题