当前位置:网站首页>VBA: 采用Combox控件实现二级下拉菜单功能
VBA: 采用Combox控件实现二级下拉菜单功能
2022-08-10 09:40:00 【用户9949496】
文章背景:在使用VBA的用户窗体(userform)时,有时会用到二级下拉菜单。比如选择院系(一级下拉菜单)后,班级(二级下拉菜单)的内容自动更新;选择省份后,该省份下面所属的市相应更新。接下来以省市为例,进行二级下拉菜单的功能实现。
表1的数据如下:
用户窗体的内容如下:
省份combox的名称取为provinceselect;城市combox的名称取为cityceselect。
用户窗体内的VBA代码如下:
Option Explicit
Private Sub provinceselect_Change()
'Populate city data
Dim i As Integer, j As Integer, nrow As Integer
Sheets("Sheet1").Select
'Clear old data, if exists
UserForm1.cityselect.Clear
nrow = Range("A65535").End(xlUp).Row
For i = 1 To nrow
j = 1
If Range("A1:A" & nrow).Cells(i, 1) = UserForm1.provinceselect.Text Then
Range("A" & i).Select
Do While Not IsEmpty(ActiveCell.Offset(j, 0))
UserForm1.cityselect.AddItem ActiveCell.Offset(j, 0)
j = j + 1
Loop
UserForm1.cityselect.Text = ActiveCell.Offset(1, 0)
Exit For
End If
Next i
End Sub
Private Sub UserForm_Initialize()
'Populate Provinces
Dim ncategories As Integer, i As Integer
Sheets("Sheet1").Select
ncategories = WorksheetFunction.CountA(Columns("C:C"))
For i = 1 To ncategories
UserForm1.provinceselect.AddItem Range("C1:C" & ncategories).Cells(i, 1)
Next i
UserForm1.provinceselect.Text = Range("C1").Value
End Sub窗体初始化时,将省份的数据填入;当省份的选项发生变化时,城市的信息也做相应的修改。
代码运行过程如下:
http://mpvideo.qpic.cn/0bf2pmcokaaejuadhv3sv5pvi66d4v5qjzia.f10002.mp4?
参考资料:
[1] Coursera课程(Excel/VBA for Creative Problem Solving, Part 3)
边栏推荐
- [Metaverse Omi Says] See how UCOUCO integrates performance art into the Metaverse
- 多元线性回归分析(Stata)
- 解决问题目录
- IDEA中xml文件头报错:URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
- 第三章 搜索与图论(三)
- 【API Management】What is API Management and why is it important?
- UE4 粒子特效基础学习 (01-将粒子效果挂载到角色身上)
- keepalived:主备配置
- CAD转WPF: 关于CAD图纸文件转换为WPF矢量代码文件(xaml文件)的技巧
- Lasso回归(Stata)
猜你喜欢
随机推荐
【REST架构】OData、JsonAPI、GraphQL 有什么区别?
故障分析 | Sql_slave_skip_counter 使用不规范对复制的影响
keepalived:常见问题
Lasso回归(Stata)
FPGA的虚拟时钟如何使用?
【数据库架构】OLTP 和 OLAP:实际比较
WebView2 通过 PuppeteerSharp 实现爬取 王者 壁纸 (案例版)
1 活动时间与安排
凭借这份阿里架构师的万字面试手册,逆风翻盘,斩获阿里offer
FPGA时钟篇(一) 7系列的时钟结构
【数据架构】分布式数据网格作为集中式数据单体的解决方案
BUUCTF【pwn】解题记录(4-6页持续更新中)
PostgreSQL 2022 发展现状:13 个非 psql 工具
keepalived:主备配置
属性动画QPropertyAnimation
FPGA时钟篇(三) MRCC和SRCC的区别
12 【其它组合式API】
【软考 系统架构设计师】系统可靠性分析与设计① 系统可靠性分析
09 【Attributes继承 provide与inject】
多元线性回归分析(Stata)
![How to use [jmeter regular expression extractor] to solve the problem of returning the value as a parameter](/img/bf/2367304d5bdf520e369097a49a7bb6.png)








