【发布时间】:2010-09-29 22:28:35
【问题描述】:
我通过将组合框从用户窗体工具栏拖到我的工作表上来创建一个下拉列表。我从书中的一些单元格中为其分配了一些值。现在我想要一些 VBA 代码以字符串的形式访问所选下拉项的值。
我的下拉菜单只包含文本。
另外我如何找到这个新创建的下拉列表的名称(它不在属性中!)?
【问题讨论】:
标签: vba excel excel-2003
我通过将组合框从用户窗体工具栏拖到我的工作表上来创建一个下拉列表。我从书中的一些单元格中为其分配了一些值。现在我想要一些 VBA 代码以字符串的形式访问所选下拉项的值。
我的下拉菜单只包含文本。
另外我如何找到这个新创建的下拉列表的名称(它不在属性中!)?
【问题讨论】:
标签: vba excel excel-2003
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 是下拉列表所在的位置 人口稠密。所以无论你的列表数据 是。
希望对大家有所帮助。
【讨论】:
以下是无需知道名称即可获取字符串的方法:
Dim DD As Shape
Set DD = ActiveSheet.Shapes(Application.Caller)
MsgBox DD.ControlFormat.List(DD.ControlFormat.ListIndex)
【讨论】:
这是一种笨拙的方法,但它应该可以工作:
Dim o As Object
For Each o In Worksheets("Sheet1").Shapes
MsgBox o.Name
Next o
还有一个隐藏的 DropDowns 集合成员 Worksheet 对象,您可以对其进行迭代。这将找到从Forms 工具栏插入的项目,但不会找到从Control Toolbox 工具栏插入的项目
【讨论】:
兰斯·罗伯茨就快到了。如果您不知道调用 sub 的下拉菜单的名称,请使用:
Dim dd as DropDown
Set dd=ActiveSheet.Shapes(Application.Caller).OLEFOrmat.Object
Dim ddVal as String
ddVal=dd.List(dd.ListIndex)
我用它为带有许多下拉菜单的表单创建了一个通用子。
【讨论】: