在VBA中获取下拉值并获取下拉列表的名称…无处可找?
我通过将combobox从用户窗体工具栏拖到我的工作表上创build了一个下拉菜单。 我从书中的一些单元格中分配了一些值。 现在我想要一些VBA代码以string的forms访问选定的下拉项目的值。
我的下拉列表仅包含文本。
另外我怎样才能find这个新创build的下拉列表的名称(这是在属性!)?
Dim dd As DropDown Set dd = ActiveSheet.DropDowns("Drop Down 6") Set r = Sheet2.Range(dd.ListFillRange) Set ddValue = r(dd.Value)
笔记:
-
DropDown不是一个可见的类。 你只是使用它,它的工作原理。
-
要查找下拉控制的名称(不是用户表单),只需看看
在A列正上方的屏幕左上angular的名称框。当您右键单击控件时,它会显示控件的名称。 -
Sheet2是填充下拉列表的地方。 所以,无论你的列表数据是什么。
希望能帮助你们。
以下是如何获得string,而不需要知道名称:
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
还有一个可以迭代的Worksheet
对象的隐藏的DropDowns
集合成员。 这将查找从“ Forms
工具栏插入的项目,但不会从“ Control Toolbox
工具栏中find插入的项目