在VBA中,我们可以使用ListBox对象来创建一个列表框,要向列表框添加内容,我们需要先创建一个ListBox对象,然后使用Add方法将内容添加到列表框中,以下是一个简单的示例:
10年积累的成都网站设计、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有扎赉诺尔免费网站建设让你可以放心的选择与我们合作。
1、打开Excel,按下Alt+F11
键,打开VBA编辑器。
2、在VBA编辑器中,点击菜单栏的插入
,然后选择模块
,在模块中输入以下代码:
Sub AddListItems() ' 定义变量 Dim objListBox As Object Dim strItem As String ' 创建一个新的列表框 Set objListBox = ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1:B3"), , xlYes).ListObject ' 向列表框添加内容 strItem = "苹果" objListBox.DataBodyRange.Cells(1, 1).Value = strItem strItem = "香蕉" objListBox.DataBodyRange.Cells(2, 1).Value = strItem strItem = "橙子" objListBox.DataBodyRange.Cells(3, 1).Value = strItem End Sub
3、按下Ctrl+S
键保存代码。
4、回到Excel工作表,按下Alt+F8
键,选择AddListItems
,然后点击运行
。
5、此时,你会看到一个新的列表框出现在工作表中,包含了我们刚刚添加的内容。
要从列表框中删除某个项目,我们可以使用Remove方法,以下是一个示例:
1、在VBA编辑器中,输入以下代码:
Sub RemoveListItem() ' 定义变量 Dim objListBox As Object Dim strItem As String ' 获取当前活动的工作表和列表框对象 Set objListBox = ActiveSheet.ListObjects("ListBox1") ' 从列表框中删除指定的项目 strItem = "香蕉" If InStr(objListBox.DataBodyRange.Cells(2, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(2, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox.DataBodyRange, Order1:=xlAscending, _ Key2:=objListBox.ListColumns("列名").DataField, Order2:=xlAscending, _ Header:=xlNo ElseIf InStr(objListBox.DataBodyRange.Cells(3, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(3, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox.DataBodyRange, Order1:=xlAscending, _ Key2:=objListBox.ListColumns("列名").DataField, Order2:=xlAscending, _ Header:=xlNo ElseIf InStr(objListBox.DataBodyRange.Cells(4, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(4, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox.DataBodyRange, Order1:=xlAscending, _ Key2:=objListBox.ListColumns("列名").DataField, Order2:=xlAscending, _ Header:=xlNo ElseIf InStr(objListBox.DataBodyRange.Cells(5, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(5, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox.DataBodyRange, Order1:=xlAscending, _ Key2:=objListBox.ListColumns("列名").DataField, Order2:=xlAscending, _ Header:=xlNo ElseIf InStr(objListBox.DataBodyRange.Cells(6, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(6, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox.DataBodyRange, Order1:=xlAscending, _ Key2:=objListBox.ListColumns("列名").DataField, Order2:=xlAscending, _ Header:=xlNo ElseIf InStr(objListBox.DataBodyRange.Cells(7, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(7, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox.DataBodyRange, Order1:=xlAscending, _ Key2:=objListBox.ListColumns("列名").DataField, Order2:=xlAscending, _ Header:=xlNo ElseIf InStr(objListBox.DataBodyRange.Cells(8, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(8, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox.DataBodyRange, Order1:=xlAscending, _ Key2:=objListBox.ListColumns("列名").DataField, Order2:=xlAscending, _ Header:=xlNo ElseIf InStr(objListBox.DataBodyRange.Cells(9, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(9, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox.DataBodyRange, Order1:=xlAscending, _ Key2:=objListBox.ListColumns("列名").DataField, Order2:=xlAscending, _ Header:=xlNo ElseIf InStr(objListBox.DataBodyRange.Cells(10, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(10, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox.DataBodyRange, Order1:=xlAscending, _ Key2:=objListBox.ListColumns("列名").DataField, Order2:=xlAscending, _ Header:=xlNo ElseIf InStr(objListBox.DataBodyRange.Cells(11, 1).Value, strItem) > 0 Then objListBox.DataBodyRange.Cells(11, 1).EntireRow.Delete objListBox.DataBodyRange.Sort Key1:=objListBox
本文标题:vba怎么向列表框添加内容
网站链接:http://www.stwzsj.com/qtweb/news35/12685.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联