文章图片
文章图片
上一篇和大家分享了公式版本的二级菜单制作 , 今天分享一篇VBA版本的二级菜单 。
VBA版本不需要过多的辅助项 , 这里只需要一列区域负责人一列店铺即可 , E2单元格放置菜单选择的项 , 用作后面提取数据的条件 。
依次点击开发工具→插入→ActiveX控件中的组合框 , 然后点击表格中你想放置的位置 。
如何知道控件是ComboBox几?
【台积电|Excel二级下拉菜单制作动态图(vba版本)】
说明:点击开发工具→设计模式可以修改控件的属性和移动位置 , 取消设计模式才可以进行控件点选操作 。
代码放置位置:
然后利用公式提取数据作为图表数据源即可制作动态图 。
部分代码解释:
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 Sub
Private Sub ComboBox2_Change()'只需要修改备注说明的位置
Sheets(\"店铺及数据\").Range(\"e2\") = ComboBox2.Text '将组合框2的选项放在店铺及数据表的E2单元格
End Sub
- 火星|我国打造太空核反应堆,功率高达一兆瓦,可为月球和火星基地供电
- 高通骁龙|LG 48英寸OLED电视降价,已不足9000,很多人拿来当显示器用
- 联想|在电脑城几年的工作经历,谈谈对联想电脑的几点认识
- 3g|这6个多条件函数都不掌握,还敢称Excel达人?
- Python|呼吁理性消费:不足千元买27寸IPS 165hz 旋转升降电竞显示器
- |如何区分三相电源的相序?
- 电子商务|腾讯回应财付通被罚:已全部完成整改
- 创业|马云可能也没料到,“电商黑马”出现,拼多多、京东和淘宝难办了
- 百度|派财经 · 一周热闻:工信部因电信网络诈骗约谈阿里云、百度云;腾讯回应APP暂停更新
- 流氓软件|流氓软件搞废一台电脑只需要六个球,火绒也拯救不了