在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插入的项目