打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA动态联动下拉组合框学习范例,想提高的速看

最终的演示效果:

演示效果

1、准备工作

根据自己工作的的实际情况,首先准备好数据。

2、添加组合框

点击开发工具-插入-选择ActiveX中的组合框控件,分别添加三个,组合框默认的名字分别是:ComboBox1,ComboBox2,ComboBox3,分别对应省,市,地区,然后自己排版一下控件的位置即可。

添加组合框

3、进入后台编写代码

二种方式可以进去后台

第一种方式:可以按组合键Alt+F11。

第二种方式:选择开发工具-VisualBasic。

进入后台后,双击左侧ThisWorkbook,在右侧写入一以下代码:

thisworkbook的代码

然后再双击Sheet1(DropDown),这个DropDown就是你给表格命名的名字,这一步你根据自己的实际情况就行,你的数据在哪个表格,就双击进去,在右侧代码区域写入以下代码:

表格后台代码

ThisWorkbook代码:

Private Sub Workbook_Open()

Dim ar As Variant

Dim j As Integer

Dim str As String

'下面的语句是把省,市,地区的数据赋值给数组变量ar,也包含了标题

ar = Sheet1.Range('A7').CurrentRegion

'j=2开始就是把标题给忽略,直接从数据开始循环

For j = 2 To UBound(ar)

'把省数据去重,并用逗号连接起来

If InStr(str & ',', ',' & ar(j, 1) & ',') = 0 Then str = str & ',' & ar(j, 1)

Next

'上个循环语句块结束后,str变量里面的值是:',所有,河北,河南,湖北'

Sheet1.ComboBox1.List = Split(Mid(str, 2), ',') '把前面的逗号去掉赋值给组合框1

Sheet1.ComboBox2.Clear '清空组合框2数据

Sheet1.ComboBox3.Clear '清空组合框3数据

End Sub

Sheet1(DropDown)代码:

Private Sub ComboBox1_Change()

ComboBox2.ListIndex = -1 '清空市组合框2数据

ComboBox3.ListIndex = -1 '清空地区组合框3数据

If ComboBox1.ListIndex > -1 Then '省组合框如果选择了某一数据,如:'河南省'

ComboBox2.List = Split(Cmbo(1), ',') '把'河南省'后面的'去重的市数据'(新乡)赋值给组合框2

End If

End Sub

Private Sub ComboBox2_Change()

If ComboBox2.ListIndex > -1 Then '市组合框如果选择了某一数据,如:'新乡'

ComboBox3.List = Split(Cmbo(2), ',') '把'新乡'后面的'去重地区数据'(牧野区,红旗区)赋值给组合框3

End If

End Sub

'如果参数传过来的是1,把把'河南省'后面的'去重的市数据'(新乡)赋值给组合框2

'如果参数传过来的是2,'把'新乡'后面的'去重地区数据'(牧野区,红旗区)赋值给组合框3

Function Cmbo(j)

Dim n As Integer

Dim i As Integer

Dim ar As Variant

Dim str As String

ar = Range('A7').CurrentRegion

For i = 1 To UBound(ar)

For n = 1 To j

If ar(i, n) <> Sheet1.OLEObjects('ComboBox' & n).Object.Value Then Exit For

Next n

If n = j + 1 And InStr(str & ',', ',' & ar(i, n) & ',') = 0 Then

str = str & ',' & ar(i, n)

End If

Next

Cmbo = Mid(str, 2)

End Function

最后:如果需要源文件,可以私信我

喜欢就关注一下,收藏一下,转发一下,就是给小编的支持!谢谢。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
选择一个少一个,这样的下拉菜单才够拽
Excel中的窗体控件和ActiveX控件
用VBA向列表框(ComboBox或ListBox)中填加数据 - VBA教程 - 智能E...
Excel VBA解读(69):工作表名称——Name属性
ComboBox的常用属性
vba_ComboBox
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服