最终的演示效果: 演示效果 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 最后:如果需要源文件,可以私信我 喜欢就关注一下,收藏一下,转发一下,就是给小编的支持!谢谢。 |
|
来自: 我的人生宝库 > 《电脑(软件应用)》