台积电|Excel二级下拉菜单制作动态图(vba版本)


台积电|Excel二级下拉菜单制作动态图(vba版本)
文章图片
台积电|Excel二级下拉菜单制作动态图(vba版本)
文章图片
上一篇和大家分享了公式版本的二级菜单制作 , 今天分享一篇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