您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页用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

这种方法常应用在连续的区域,并且一个数据源应用于多个列表框,如在不同的窗体中。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务