多级下拉菜单代码(制作多级下拉菜单)
admin 发布:2022-12-19 06:52 118
本篇文章给大家谈谈多级下拉菜单代码,以及制作多级下拉菜单对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
Excel VBA 多级下拉菜单
确定要用VBA,这个完全可以通过公式解决。以上表为例,操作如下:
分别将A列、C列、G列,命名为:公司、部门、员工
设计如下图所示的表2
分别在B1\D1\F1设置“数据验证-序列”如图
在来源处输入:
B1: =OFFSET(公司,1,0,COUNTA(公司)-1,1)
D1: =OFFSET(部门,1,MATCH($B$1"公司部门",OFFSET(部门,0,0,1,COUNTA(公司)-1),0)-1,COUNTA(OFFSET(部门,0,MATCH($B$1"公司部门",OFFSET(部门,0,0,1,COUNTA(公司)-1),0)-1,,1))-1,1)
F1: =OFFSET(员工,1,MATCH($B$1"公司员工",OFFSET(员工,0,0,1,COUNTA(公司)-1),0)-1,COUNTA(OFFSET(员工,0,MATCH($B$1"公司员工",OFFSET(员工,0,0,1,COUNTA(公司)-1),0)-1,,1))-1,1)
下面试下,你会发现单关联的下拉列表出来!
excel表VBA中用代码如何建立多级combobox下拉菜单
ExcelVBA字典实现窗体二级下拉菜单:
问题提出:
选择确定ComboBox1中的数值后,ComboBox2的下拉列表自动引用ComboBox1中数值对应的列的内容。如何能做到,现在想在加一重判断:就是判断ComboBox2中的数值,如果是原来ComboBox1对应列中已有的值,就直接向下进行,如果原来ComboBox1对应列中没有该值,自动添加到该列最下一个非空行之后再向下执行。
字典的引用:
窗体代码如下:
Public Arr, Dic As New Dictionary '声明为公共变量,引用“Microsoft Scripting Runtime”
Private Sub UserForm_Initialize() '窗体初始化事件
Dim Brr
Arr = Sheet1.Range("A1").CurrentRegion.Value 'A1单元格已用区域
For i = 1 To UBound(Arr, 2) '循环标题,并添加到字典
If Not Dic.Exists(Arr(1, i)) Then '字典中不存在关键字
Dic.Add Arr(1, i), Dic.Count + 1 '添加关键字,Item为索引
End If
Next
Brr = Dic.Keys
Me.ComboBox1.Clear '清除列表框1条目
For i = 0 To UBound(Brr) - 1 '列表框1添加条目
Me.ComboBox1.AddItem Brr(i)
Next
End Sub
Private Sub ComboBox1_DropButtonClick() '列表框1下拉事件
Dim Brr
If Me.ComboBox1.Text = "" Then Exit Sub '如果列表框1为空,就退出过程
Me.ComboBox2.Clear '清空列表框2条目
If Dic.Exists(Me.ComboBox1.Text) Then '如果列表框的关键字,在字典中有记录
Brr = Application.WorksheetFunction.Index(Arr, 0, Dic(Me.ComboBox1.Text)) '用Index函数取出整列数据
For i = 2 To UBound(Brr, 1) '列表框2添加条目
Me.ComboBox2.AddItem Brr(i, 1) '列表框2添加条目
Next
End If
End Sub
Private Sub CommandButton1_Click() '按钮1单击事件
If Me.ComboBox1.Text = "" Or Me.ComboBox2.Text = "" Then Exit Sub '如果列表框1,2为空,就退出过程
Dim Brr, Crr
Brr = Application.WorksheetFunction.Index(Arr, 0, Dic(Me.ComboBox1.Text)) '用Index函数取出整列数据
Crr = VBA.Filter(Application.Transpose(Brr), Me.ComboBox2.Text, True) '取出匹配列表框2的值
If UBound(Crr) = -1 Then '如果有列表框2的值,数组不会为-1 ,'如果列表框2中没有此关键字,往原数据添加此关键字
Sheet1.Cells(Rows.Count, Dic(Me.ComboBox1.Text)).End(xlUp).Offset(1).Value = Me.ComboBox2.Text
End If
Sheet1.Cells(Rows.Count, 10).End(xlUp).Offset(1).Value = Me.ComboBox2.Text '+ Me.ComboBox1.Text '把数据写入单元格
Me.ComboBox1.Text = "": Me.ComboBox2.Text = "" '列表框1,2显示为空白
Me.ComboBox1.Clear: Me.ComboBox2.Clear '清空列表框1,2的条目
Call UserForm_Initialize '初始化窗体,为下一次录入数据准备
End Sub
效果图:
excel表格多级下拉菜单怎么设置 excel表格创建多级下拉菜单的方法
1、以输入学生年级和班级的两级下拉菜单为例,首先我们把年级和班级在表格内的一个区域先把全部的数据输入完整。即我们先选中年级,年纪确定之后后面的二级列表中只能出现对应年级的班级。
2、接下来我们选中年级和班级的整个数据区域,按F5快捷键调出定位对话框,或者是在编辑选项卡下,有一项查找选择,在其下拉菜单中也可以找到定位条件,点击选择它也可以调出定位对话框。
3、在定位设置对话框左下角有一个定位条件按钮,点击它,在蹦出来的定位条件选择对话框中选择常量,并点击确定。
4、完成之后,选择公式选项,在其下面定义名称选项卡下,有一项是根据所选内容创建,我们点击选择它。在蹦出来的对话框中选择首行,并点击确定。
5、这样我们在名称管理下面就可以看到分别对年级进行了分组,其下对应了各个班级。
6、上面的设置完成之后,我们来设置需要输入数据的表格,首先根据数据有效性来设置一下一级下拉菜单即年级,选中数据区域,调出数据有效性对话框,选中序列,并在表格内选择第一行的年级数据区域。
7、接下来是二级菜单,我们还是先选中数据区域,调出数据有效性对话框,选择序列,并输入公式=indirect(B2),点击 确定,会蹦出来一个错误提示对话框,点击是,这是因为B2单元格现在还是空值。
8、返回到表格,我们前面先选中年级,对应的后面班级的下拉菜单就会跟随相应年级下的班级下拉菜单,我们直接选择就可以了。
关于多级下拉菜单代码和制作多级下拉菜单的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-15如何制作一个网页网站,如何制作一个网页?
- 05-15广西网站建设制作,广西网站建设制作公司
- 05-15免费开发软件制作平台,软件免费开发网站
- 05-14网站建设网站制作,网站建设制作免费
- 05-13怎么制作公司网页,怎样制作自己公司的网页
- 05-12网站制作免费,免费网址制作平台
- 05-11怎么在百度制作自己的网站,如何能在百度上设计个自己的网页
- 05-11廊坊网站,廊坊网站建设模块制作
- 05-09网页代码,网页代码快捷键
- 05-09网站免费制作,免费制作网站教程
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接