用户表单上的组合框(没有电子表格中的值)...如何获取组合框用户在运行时选择的值?

时间:2017-04-05 16:25:36

标签: excel-vba combobox controls vba excel

好吧,我认为这应该是一个更简单的问题:我在用户表单中工作,我需要在该用户表单上获取任何和所有组合框的值。

请注意,组合框中没有下拉列表值来自excel电子表格(我见过的唯一示例总是在工作表中引用单元格,但我的值是在运行时添加的,所以这些对n00b没有好处像我一样了解。)

我有这个代码:

Dim con As Controls
Dim ArrValUe
Dim i

For Each con In Me.Controls
i = 1
    If TypeName(con) = "ComboBox" Then
        If con.Name = "MemberSectionList" & i Then
        ArrValUe = IsInArray(Me.Controls(con).Text, AISC_Manual_Label)
        MsgBox con & " corresponds to AISC_Manual_Label: " & ArrValUe
        Else
        MsgBox "This control name was not named MemberSectionList & i: " & con.Name
        End If
        Else
        MsgBox " I cannot find a control with TypeName = 'Combobox', Dave!"
    End If
i = i + 1
Next

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

没关系;我明白了:

Private Sub Draw_Member_Shapes()

Dim con As Control
Dim ArrValUe
Dim i

For Each con In Me.Controls
i = 1
    If TypeName(con) = "ComboBox" Then
        If con.Name = "MemberSectionList" & i Then
        ArrValUe = IsInArray(con.value, AISC_Manual_Label)
        MsgBox con & " corresponds to AISC_Manual_Label: " & ArrValUe
        End If
    End If
i = i + 1
Next

End Sub

基于我想出的一些注释:

  • 我需要查找的组合框(“MemberSectionList”& i)之前已在另一个子组中生成,作为OBJECT,而不是CONTROL
  • IsInArray()来自这个论坛上的另一个用户,JimmyPena,来自这里:How to search for string in an array ...在我的结尾稍作调整,所以道具给他一个坚实的答案......