用VBA向列表框(ComboBox或ListBox)中填加数据
生活随笔
收集整理的这篇文章主要介绍了
用VBA向列表框(ComboBox或ListBox)中填加数据
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
用VBA向列表框(ComboBox或ListBox)中填加数据
向列表框中填加数据的方法很多,下面根据实例介绍3种最常用到的方法:图1
图2
如图1所示的下拉列表框(组合框),图2为其数据源,图2所有在工作表表名为:设置表
无论哪种方法我们都首先要知道最后这个数据所在的行数。如图2的第4行。 复制内容到剪贴板
代码:
Dim l As Long '表示行数时,应该习惯设成长整型l = Sheets("设置表").Range("A65536").End(xlUp).Row 上述代码请参见《用VBA得到EXCEL表格中的行数和列数》
方法一:循环Additem 复制内容到剪贴板
代码:
Sub OkExcel01()'www.okexcel.com.cn
Dim l As Long '表示行数时,应该习惯设成长整型
Dim i As Long
Dim ws As Worksheet
Set ws = Worksheets("设置表")
l = ws.Range("A65536").End(xlUp).Row
For i = 2 To l
ComboBox1.AddItem (ws.Cells(i, 1))
Next
End Sub 这种方法常应用在:(1)将数组加到列表中;(2)不连续的区域;(3)从数据库中读出的数据等等。
方法二:设置数据源区域 复制内容到剪贴板
代码:
Sub OkExcel02()'www.okexcel.com.cn
Dim l As Long
Dim ws As Worksheet
Set ws = Worksheets("设置表")
l = ws.Range("A65536").End(xlUp).Row
ComboBox1.List = ws.Range("A2:A" & l).Value
End Sub 这种方法常应用在连续的区域,如果源区域的数据固定(如民族)可以省算l的步骤。
方法三:名称定义法:
首先定义名称:(菜单:插入/名称/定义)
图3
如图3所示,定义名称
当数据源中的数据有增减变化时执行如下过程: 复制内容到剪贴板
代码:
Sub OkExcel03_1()'www.okexcel.com.cn
Dim l As Long
Dim ws As Worksheet
Set ws = Worksheets("设置表")
l = ws.Range("A65536").End(xlUp).Row
ThisWorkbook.Names("类别").RefersTo = "=设置表!$A$2:$A$" & l
End Sub 填写数据时执行职下过程: 复制内容到剪贴板
代码:
Sub OkExcel03_2()'www.okexcel.com.cn
ComboBox1.List = ThisWorkbook.Names("类别").RefersToRange.Value
End Sub 这种方法常应用在连续的区域,并且一个数据源应用于多个列表框,如在不同的窗体中。
总结
以上是生活随笔为你收集整理的用VBA向列表框(ComboBox或ListBox)中填加数据的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: PWA应用入个门
- 下一篇: DOTA2怎么清除缓存_5分钟带你走进m