当前位置:网站首页>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)
边栏推荐
猜你喜欢

MUDA:对齐特定域的分布和分类器以实现来自多源域的跨域分类

解决ASP.NET Core在Task中使用IServiceProvider的问题

00后女孩月薪3200,3年买两套房,这个程序员变现新风口千万要把握住

多元线性回归分析(Stata)

CAD转WPF: 关于CAD图纸文件转换为WPF矢量代码文件(xaml文件)的技巧

shell iterates over folders and outputs

BUUCTF problem solving PWN 】 【 record (4-6 pages continuously updated)
![[Metaverse Omi Says] Listen to how Rabbit Fan Rabbit creates a new era of trendy play from virtual to reality](/img/e8/f431a9c932e0fa5f413b1f7e09bf46.png)
[Metaverse Omi Says] Listen to how Rabbit Fan Rabbit creates a new era of trendy play from virtual to reality

故障分析 | Sql_slave_skip_counter 使用不规范对复制的影响

多线程知识点总结之温故而知新
随机推荐
【元宇宙欧米说】看UCOUCO如何将行为艺术融入元宇宙
The Generation of Matlab Symbolic Functions and the Calculation of Its Function Values
FPGA时钟篇(一) 7系列的时钟结构
"Microservice Architecture" Arrangement and Choreography - Different Models for Making Systems Work Together
2022-08-09:以下go语言代码输出什么?A:否,会 panic;B:是,能正确运行;C:不清楚,看投票结果。
WebView2 通过 PuppeteerSharp 实现爬取 王者 壁纸 (案例版)
英伟达游戏显卡营收暴跌/ 谷歌数据中心爆炸致3人受伤/ iPhone电量百分比回归…今日更多新鲜事在此...
LCD DRM驱动框架分析一
【物联网架构】最适合物联网的开源数据库
初识Flink 完整使用 (第一章)
Flink运行时架构 完整使用 (第四章)
第三章 搜索与图论(三)
Lasso regression (Stata)
FPGA中BEL Site Tile FSR SLR分别指什么?
UE4 粒子特效基础学习 (01-将粒子效果挂载到角色身上)
CatchAdmin实战教程(四)Table组件之自定义基础页面
地平线:面向规模化量产的智能驾驶系统和软件开发
06 【生命周期 模板引用】
Relearn bubble sort
Flink快速上手 完整使用 (第二章)