1FOR i=1 to 5 combobox1.add sheets("定义的知名道称版权").cells(1,i)n" />
乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>ExcelVBA</em>实现窗体二级<em>下拉菜单</em>

<em>ExcelVBA</em>实现窗体二级<em>下拉菜单</em>

作者:乔山办公网日期:

返回目录:excel表格制作




1
FOR i=1 to 5
combobox1.add sheets("定义的").cells(1,i)

next

2
select case combobox1.value
case "上装"
for i=1 to 100
if sheets("定义的名称").cells(i,1)="" then exit for
combobox2.add sheets("定义的名称").cells(i,1)
next
calse "下装"
for i=1 to 100
if sheets("定义的名称").cells(i,2)="" then exit for
combobox2.add sheets("定义的名称").cells(i,2)
next
..
.
.
.
.
你可以试试,下面是我自己以前弄的窗体三级下拉菜单
Private Sub UserForm_Initialize() '将一级菜单复制,二级和三级的列表为空
Me.ComboBox1.List = Array("中国", "中国人")
End Sub

Private Sub ComboBox1_Change() '当一级菜单的值改变了,e799bee5baa6e997aee7ad94e58685e5aeb9330将二级菜单赋值
Dim a, b1, b2
b1 = Array("广东", "海南")
b2 = Array("广东人", "海南人")
If ComboBox1.Text = "" Then
Exit Sub
Else
If ComboBox1.Text = "中国" Then
Me.ComboBox2.List = b1
Else
Me.ComboBox2.List = b2
End If
End If
End Sub
Private Sub ComboBox2_Change() '当二级菜单的值改变了,将三级菜单赋值
Dim a, b1, b2
b1 = Array("广州", "深圳")
b2 = Array("海口", "三亚")
b3 = Array("广州人", "深圳人")
b4 = Array("海口人", "三亚人")
If ComboBox2.Text = "" Then
Exit Sub
Else
If ComboBox2.Text = "广东" Then
Me.ComboBox3.List = b1
ElseIf ComboBox2.Text = "海南" Then
Me.ComboBox3.List = b2
ElseIf ComboBox2.Text = "广东人" Then
Me.ComboBox3.List = b3
ElseIf ComboBox2.Text = "海南人" Then
Me.ComboBox3.List = b4
End If
End If
End Sub

确定要用VBA,这个完全可以通过公式解决。以上表为例,操作如下:

  1. 分别将A列、C列、G列,命名为:公司、部门、员工

  2. 设计如下图所示的表2

  3. 分别在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)

  4. 下面试下,你会发现单关联的下拉列表出来!

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网