我通过从UserForm工具栏将组合框拖到我的工作表上来创建一个下拉列表。我从书中的一些单元格中为它指定了一些值。现在我想要一些VBA代码以字符串的形式访问所选下拉项的值。
我的下拉列表仅包含文字。
另外,我如何找到这个新创建的下拉列表的名称(它在属性中没有任何地方!)?
答案 0 :(得分:7)
Dim dd As DropDown
Set dd = ActiveSheet.DropDowns("Drop Down 6")
Set r = Sheet2.Range(dd.ListFillRange)
Set ddValue = r(dd.Value)
注意:
DropDown不是可见类。您 只需使用它就可以了。
查找下拉列表的名称 CONTROL (不是用户形式)只看一下 屏幕左上角的名称框位于A列的正上方。 它表示控件的名称 你右键点击你的控件.-
Sheet2是下拉列表的位置 填充。所以无论你的列表数据在哪里 是
希望对大家有所帮助。
答案 1 :(得分:3)
以下是如何获取String而无需知道名称:
Dim DD As Shape
Set DD = ActiveSheet.Shapes(Application.Caller)
MsgBox DD.ControlFormat.List(DD.ControlFormat.ListIndex)
答案 2 :(得分:0)
这是一种笨重的方式,但它应该有效:
Dim o As Object
For Each o In Worksheets("Sheet1").Shapes
MsgBox o.Name
Next o
还可以迭代DropDowns
对象的隐藏Worksheet
集合成员。这将找到从Forms
工具栏插入的项目,但不会找到从Control Toolbox
工具栏中插入的项目
答案 3 :(得分:0)
Dim dd as DropDown
Set dd=ActiveSheet.Shapes(Application.Caller).OLEFOrmat.Object
Dim ddVal as String
ddVal=dd.List(dd.ListIndex)
我用它来为一个有很多下拉的表单创建一个通用子。