ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 377|回复: 10

[求助] vba代码求助,五级联动菜单设置!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-8-31 23:52 | 显示全部楼层 |阅读模式
五级联动菜单设置,请大神指教,谢谢!

五级联动菜单设置vba.rar

15.77 KB, 下载次数: 17

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-9-1 08:49 | 显示全部楼层
我用定义名称,函授设置,无法完成。求大神不吝赐教

TA的精华主题

TA的得分主题

发表于 2024-9-1 10:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
用VBA就别用数据有效性了。
微信截图_20240901102400.png

五级联动菜单设置vba.rar

31.96 KB, 下载次数: 29

TA的精华主题

TA的得分主题

发表于 2024-9-1 11:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
窗体版试试.............
PixPin_2024-09-01_11-01-01.gif

TA的精华主题

TA的得分主题

发表于 2024-9-1 11:02 | 显示全部楼层
Public dic As Object

Private Sub ComboBox1_Click()
Me.ComboBox2.Clear
Me.ComboBox3.Clear
Me.ComboBox4.Clear
Me.ComboBox5.Clear
s = Me.ComboBox1.Value
Me.ComboBox2.List = dic(s).keys
End Sub
Private Sub ComboBox2_Click()
Me.ComboBox3.Clear
Me.ComboBox4.Clear
Me.ComboBox5.Clear
s = Me.ComboBox1.Value
s2 = Me.ComboBox2.Value
Me.ComboBox3.List = dic(s)(s2).keys
End Sub

Private Sub ComboBox3_Click()
Me.ComboBox4.Clear
Me.ComboBox5.Clear
s = Me.ComboBox1.Value
s2 = Me.ComboBox2.Value
s3 = Me.ComboBox3.Value
Me.ComboBox4.List = dic(s)(s2)(s3).keys
End Sub
Private Sub ComboBox4_Click()

Me.ComboBox5.Clear
s = Me.ComboBox1.Value
s2 = Me.ComboBox2.Value
s3 = Me.ComboBox3.Value
s4 = Me.ComboBox4.Value
Me.ComboBox5.List = dic(s)(s2)(s3)(s4).keys
End Sub
Private Sub CommandButton1_Click()
ActiveCell = ComboBox1.Value
ActiveCell.Offset(0, 1) = ComboBox2.Value
ActiveCell.Offset(0, 2) = ComboBox3.Value
ActiveCell.Offset(0, 3) = ComboBox4.Value
ActiveCell.Offset(0, 4) = ComboBox5.Value
End Sub

Private Sub CommandButton2_Click()
Unload UserForm1
End Sub

Private Sub UserForm_Initialize()
Dim arr, i, s, s2, s3, s4, s5
With Sheet2
    arr = .Range("a3:e" & .Cells(Rows.Count, 1).End(3).Row)
End With
Set dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(arr)
    s = arr(i, 1)
    If Not dic.exists(s) Then Set dic(s) = CreateObject("scripting.dictionary")
    s2 = arr(i, 2)
    If Not dic(s).exists(s2) Then Set dic(s)(s2) = CreateObject("scripting.dictionary")
    s3 = arr(i, 3)
    If Not dic(s)(s2).exists(s3) Then Set dic(s)(s2)(s3) = CreateObject("scripting.dictionary")
    s4 = arr(i, 4)
    If Not dic(s)(s2)(s3).exists(s4) Then Set dic(s)(s2)(s3)(s4) = CreateObject("scripting.dictionary")
    s5 = arr(i, 5)
    If Not dic(s)(s2)(s3)(s4).exists(s5) Then Set dic(s)(s2)(s3)(s4)(s5) = CreateObject("scripting.dictionary")
    dic(s)(s2)(s3)(s4)(s5) = ""
Next
With UserForm1
    .ComboBox1.Clear
    .ComboBox1.List = dic.keys
End With

End Sub

TA的精华主题

TA的得分主题

发表于 2024-9-1 11:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
窗体字典版试试...........

五级联动菜单设置vba字典窗体版.rar

32.31 KB, 下载次数: 37

TA的精华主题

TA的得分主题

发表于 2024-9-1 11:53 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-9-1 11:58 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-9-8 17:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
拜谢各位大神,辛苦了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-9-8 18:54 | 显示全部楼层
songshihai 发表于 2024-9-1 11:58
SelectionChange事件,试试看

经典,容易上手,得好好研究一下!怎么搬用!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 21:25 , Processed in 0.047424 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表