Vba 从下拉框中返回所选文本
我试图从Excel表单上选择的下拉框返回文本。我尝试了很多方法,最接近的方法就是返回索引号。还看了一下: 链接: 我在那页上还没有找到有效的解决方案。我尝试过以下方法:Vba 从下拉框中返回所选文本,vba,excel,Vba,Excel,我试图从Excel表单上选择的下拉框返回文本。我尝试了很多方法,最接近的方法就是返回索引号。还看了一下: 链接: 我在那页上还没有找到有效的解决方案。我尝试过以下方法: ActiveSheet.DropDowns("DropDown1").Value ActiveSheet.DropDowns("DropDown1").Text ActiveSheet.DropDowns("DropDown1").SelectedValue ActiveSheet.Shapes("DropDown1").Val
ActiveSheet.DropDowns("DropDown1").Value
ActiveSheet.DropDowns("DropDown1").Text
ActiveSheet.DropDowns("DropDown1").SelectedValue
ActiveSheet.Shapes("DropDown1").Value
等等。这将从下拉列表中返回当前选择
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
顺便说一句,指定一个声明为
Dim dd as DropDown
的变量将为您提供dd
上的智能感知。如果宏由下拉框本身调用,您还可以获取调用方名称。这样,您就不必担心重命名下拉框:)
如果您无法
Dim as下拉列表
,我发现此更改将起作用
Sub TestDropdown()
Dim ws As Worksheet
Dim dd As Object
Set ws = ActiveSheet
Set dd = ws.DropDowns("DropDown1")
MsgBox dd.List(dd.ListIndex)
End Sub
您可以声明“…在excel表单上选择的下拉框”,但链接和示例代码引用的是工作表上的形状。你想做什么?另外,您使用的是哪个版本的Excel?我使用的是Excel 2010。嗯,在我的一部分代码中,我将下拉列表称为ActiveSheet.Shapes,这部分代码运行良好。通过下拉菜单访问也可以。我不确定您使用的是什么:您是否在工作表中添加了控件(例如,从“开发人员”选项卡,插入表单或ActiveX控件,如果是,插入哪个控件),或者您是否在单元格或区域中添加了数据验证(例如,从“数据”选项卡,数据验证,如果是,具体设置是什么)是的,我通过“开发者”选项卡下的表单控件添加了它。哇,它工作起来很有魅力。我从来没有想到过,我以为它会像.SelectedIndex这样简单。谢谢克里斯。这是真正的答案,因为获取对象名称是一个PITA。
Sub TestDropdown()
Dim ws As Worksheet
Dim dd As Object
Set ws = ActiveSheet
Set dd = ws.DropDowns("DropDown1")
MsgBox dd.List(dd.ListIndex)
End Sub