上一篇和大家分享了公式版本的二级菜单制作,今天分享一篇VBA版本的二级菜单。
VBA版本不需要过多的辅助项,这里只需要一列区域负责人一列店铺即可,E2单元格放置菜单选择的项,用作后面提取数据的条件。
依次点击开发工具→插入→ActiveX控件中的组合框,然后点击表格中你想放置的位置。
如何知道控件是ComboBox几?
说明:点击开发工具→设计模式可以修改控件的属性和移动位置,取消设计模式才可以进行控件点选操作。
代码放置位置:
然后利用公式提取数据作为图表数据源即可制作动态图。
部分代码解释:
Thisworkbook内
arr = Sheets("店铺及数据").Range("a2:a17")等于号之后括号内代码需要修改;
Sheets("图表展示").ComboBox1.List= d.items 中Sheets("图表展示").ComboBox1需要修改为实际的;
Sheet内
arr = Sheets("店铺及数据").Range("a2:b17")等于号之后括号内代码需要修改为实际的;
Sheets("图表展示").ComboBox2.List= d.items中Sheets("图表展示").ComboBox2需要修改为实际的;
Sheets("店铺及数据").Range("e2")= ComboBox1.Text中Sheets("店铺及数据").Range("e2")和ComboBox1需要修改为实际的;
Sheets("店铺及数据").Range("e2")= ComboBox2.Text中Sheets("店铺及数据").Range("e2")和ComboBox2需要修改为实际的。
Private Sub Workbook_Open()'只需要修改备注说明的两个位置 Dim d Set d = CreateObject("scripting.dictionary") arr = Sheets("店铺及数据").Range("a2:a17") '区域负责人数据所在位置 For i = 1 To UBound(arr) If Not d.exists(arr(i, 1)) Then d(arr(i, 1)) = arr(i, 1) End If Next Sheets("图表展示").ComboBox1.List = d.items '图表展示表的组合框1赋值,也就是一级菜单赋值End Sub
Private Sub ComboBox1_Change()'只需要修改备注说明的三个位置 Dim d ComboBox2.Text = "" Set d = CreateObject("scripting.dictionary") arr = Sheets("店铺及数据").Range("a2:b17") '区域负责人及对应店铺数据所在位置 For i = 1 To UBound(arr) If arr(i, 1) = ComboBox1.Text Then d(i) = arr(i, 2) End If Next Sheets("图表展示").ComboBox2.List = d.items '图表展示表的组合框2赋值,也就是二级菜单赋值 Sheets("店铺及数据").Range("e2") = ComboBox1.Text '将组合框1的选项放在店铺及数据表的E2单元格End SubPrivate Sub ComboBox2_Change()'只需要修改备注说明的位置Sheets("店铺及数据").Range("e2") = ComboBox2.Text '将组合框2的选项放在店铺及数据表的E2单元格End Sub
更多C4D模型下载,请访问C4D模型网
优质模型尽在,https://www.c4dmodels.cn/