这篇文章全讲清楚了 下拉列表怎么添加

本节介绍一下 ControlFormat 对象,严格来说这个对象是对应于 Excel 中的 ListBox 对象的一些属性和方法,为什么不以 ListBox 来返回,就不太清楚了 。
总之,要对 Excel 表中的 ListBox 对象操作就这么做就行了 。

这篇文章全讲清楚了 下拉列表怎么添加


那么,如何得到 ControlFormat 对象呢?
用下面的方法:
dim xCF as Object
Set xCF=Shapes(i).ControlsFormat
【这篇文章全讲清楚了 下拉列表怎么添加】 对象 xCF 就是一个 ControlFormat 对象,其中 i 代表了此 Shape 的 Index 值 。
这就有点不可想像了,Shape 是 Excel 表绘图层中的对象,例如自选图形、任意多边形、OLE 对象或图片,此处就代表了一个 OLE 对象,即 ListBox 。
有点乱,但要了解一下 Shape 对象,如下图所示,有按钮对象,下拉列表和文本框对象,都 属于 Shapes 对象合集 。

这篇文章全讲清楚了 下拉列表怎么添加


可以使用 Shape 对象的 ContrlFormat 来返回 ContrlFormat 对象 。
当我们得到这个 ContrlFormat 对象之后,就可以对下拉列表框进行各种添加删除操作了 。
ContrlFormat 对象有四个方法:Additem、List、RemoveAllitems、Removeitem
懂基本英语就基本明白这四种方法的功能了,这里不做过多介绍,具体可参考下面的代码进行对号 。
更加重要的是 ContrlFormat 的属性,一共有 17 个,属性就是用一些固定的参数来进行设置,可以使下拉列表框更加符合要求,目的很简单 。

这篇文章全讲清楚了 下拉列表怎么添加


下面,用实例来证明一下我们通过代码如何实现对下拉列表的添加、修改、删除等等操作 。
添加列表框
Private Sub AddListBox()DelListbox '删除除列表框 Dim xlobj As Object'添加列表框 Set xlobj = Me.Shapes.AddFormControl(xlListBox, Range("E3").Left, Range("E3").Top, 200, 350)Dim xFormat As ObjectSet xFormat = xlobj.ControlFormat '返回列表对象 xFormat.RemoveAllItems '清除列表内容 xFormat.ListFillRange = Range("C4:C20").Address'设置列表区域 Set xFormat = NothingSet xlobj = NothingEnd Sub 返回列表值
Private Sub ShowListValue()Dim xShape As ShapeFor Each xShape In Me.ShapesIf xShape.Type = 8 ThenMsgBox xShape.ControlFormat.List(xShape.ControlFormat.ListIndex)End IfNext xShapeEnd Sub 给列表框添加列表
Private Sub AddListItems()Dim xShape As ShapeFor Each xShape In Me.Shapes'遍历 ShapesIf xShape.Type = 8 Then'如果是列表xShape.ControlFormat.RemoveAllItems'清除所有列表值For i = 4 To 7xShape.ControlFormat.AddItem Range("B" & i).Value'添加列表Next iEnd IfNext xShapeEnd Sub 如上代码,根据 ContrlFormat 的四个方法和属性可实现所有对列表框的添加删除修改功能 。
这样,就大大地增加了 Excel 工作表的一些使用功能 。

    推荐阅读