0

我在 Excel VBA 中遇到了 ComboBox 的问题。非常感谢任何帮助。这就是我想要做的:

  • 在用户窗体中,用户从名为“ComboBox_groesse”的第一个 ComboBox 中选择一个输入(具有固定 RowSource 的常规 ComboBox。输入是数字)
  • 单击名为“ComboBox_config_1”的第二个 ComboBox 的 DropButton 时,将使用 NamedRange“KonfiRange_1_1”中的值填充此 ComboBox,该值等于所选 ComboBox_groesse.value 的值
  • NamedRange 位于一个有 2 列的表中。第一列是带有数字的 NamedRange,第二列是带有文本的。
  • 我希望对应的文本与等于 ComboBox_groesse.value 的值一起出现在第二个 ComboBox 中

我已经编写了下面的代码,但我得到了一个空白的 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
4

1 回答 1

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
于 2013-08-21T16:13:01.930 回答