从下拉框中返回所选文本

kar*_*low 6 excel vba excel-vba

我试图从Excel表单上选择的下拉框中返回文本.我尝试了很多东西,而我得到的最接近的是返回索引号.还看了看:

链接:从下拉框而不是索引号返回文本

我没有在该页面上找到可行的解决方案.我尝试过这样的事情:

ActiveSheet.DropDowns("DropDown1").Value
ActiveSheet.DropDowns("DropDown1").Text
ActiveSheet.DropDowns("DropDown1").SelectedValue
ActiveSheet.Shapes("DropDown1").Value
Run Code Online (Sandbox Code Playgroud)

等等

chr*_*sen 12

这将从DropDown返回当前选择

Sub TestDropdown()
    Dim ws As Worksheet
    Dim dd As DropDown

    Set ws = ActiveSheet
    Set dd = ws.Shapes("DropDown1").OLEFormat.Object

    MsgBox dd.List(dd.ListIndex)
End Sub
Run Code Online (Sandbox Code Playgroud)

顺便说一句,分配给声明的变量Dim dd As DropDown会给你智能感知dd


cyb*_*onk 6

如果宏由下拉框本身调用,您也可以获取调用者名称.这样您就不必担心重命名下拉框了:)

Sub Dropdown_OnSelect()
    Dim dd As DropDown

    Set dd = ActiveSheet.Shapes(Application.Caller).OLEFormat.Object

    MsgBox dd.List(dd.ListIndex)
End Sub
Run Code Online (Sandbox Code Playgroud)