分享
 
 
 

Excel中级联菜单的实现

王朝学院·作者佚名  2009-10-05
窄屏简体版  字體: |||超大  

大家知道,在Excel中可以通过设置数据的有效性来实现类似于网页表单中的下拉菜单功能,这样可以大大地提高数据的录入速度和可靠性。但采用此方法要求下拉菜单中的选项不能过多,否则会影响录入的速度。如果这些选项内容之间可进行分类、分组,那我们就可以用多个下拉选项(即级联菜单)来解决此类问题。下面我们就从一个实例出发,给出在Excel中实现级联菜单的两种方法,希望能给使用Excel进行办公的朋友提供帮助。一、自定义数据的有效性

图1中有两个工作表,其中Sheet1用来采集客户资料,并将其名称改为“客户数据采集”,在Sheet2的A列中保存了所有的省份,B列中的数据为各省份所属的县市并将工作表名称改为“地区”(假设这里设置了三个省份,即江苏省、浙江省和安徽省)。

1. 定义单元格区域名称

选中“地区”表中江苏省所属县市的单元格区域B2∶B14,依次单击“插入”菜单中的“名称”,选择“定义”,弹出“定义名称”对话框,在“在当前工作簿中的名称”框中输入所定义的名称“江苏”,单击“确定”按钮。类似地,我们可以将浙江省和安徽省所属县市的单元格区域名称分别定义为“浙江”和“安徽”。

2. 设置数据的有效性

切换到“用户数据采集”表中,选择要选择输入省份的D列,单击“数据”菜单中的“有效性”命令,弹出设置“数据有效性”对话框,在有效性条件的“允许”列表中选择“序列”,在“来源”框中输入“江苏,浙江,安徽”(分隔符为英文状态下的逗号,如图2所示),单击“确定”按钮。接下来选中“所属县市”所在的E列,再次打开“数据有效性”对话框,在有效性条件的“允许”列表中选择“序列”,在“来源”框中输入公式“=INDIRECT(D2)”,单击“确定”按钮。

Cico提示:在关闭设置E列数据有效性对话框时,如系统弹出警告提示“源目前包含错误,是否继续?”,只需确认就可以了。如果指定的D2单元格中已经选择了一个省份再设置E列数据的有效性就不会出现此提示了。

3. 数据录入

录入客户资料时,首先选择客户所在的省份,然后再打开其右侧“所属县市”所在的单元格时,我们就可以从下拉菜单中找到我们所需的选项了。

二、用组合框工具实现

该方法是借助控件工具箱和VBA代码来实现的。

1. 设计组合框

在工作表Sheet1中我们借助“控件工具箱”设计了如图3所示的录入界面,将工作表名称改为“客户数据采集”,在采集客户的所属地区时我们设计了两个组合框,第一个组合框ComboBox1用来存放省份,第二个组合ComboBox2用来存放对应于第一个组合框的下属的县市。Sheet2(“地区”表)仍保留和原来一样的内容。

2. 编写组合框事件代码

双击“客户数据采集”表中的组合框ComboBox1,进入VBE编辑器,在代码窗口中输入其GotFocus事件代码:

Private Sub ComboBox1_GotFocus( )'清除组合框中的数值ComboBox1.ClearComboBox2.Clear'读出"地区"表A列中的不同省份并将其添加到组合框1中For i = 2 To Sheet2.[a1].End(xlDown).Rowtarget = Sheet2.Cells(i, 1)'利用设置标志位要判断数据是否重复flag = 0For j = 0 To ComboBox1.ListCount - 1If ComboBox1.List(j) = target Then flag = 1NextIf flag = 0 ThenComboBox1.AddItem targetEnd IfNextEnd Sub返回Excel工作表中,双击组合框ComboBox2,在代码窗口中输入其GotFocus事件代码:Private Sub ComboBox2_GotFocus( )ComboBox2.Clear'读出"地区"表B列中属于组合框1的县市并将其添加到组合框2中For i = 2 To Sheet2.[a1].End(xlDown).Rowtarget = Sheet2.Cells(i, 1)If target = ComboBox1.Value ThenComboBox2.AddItem Sheet2.Cells(i, 2)End IfNextEnd Sub

3. 运行效果

返回“客户数据采集”表,单击控件工具箱中的“退出设计模式”按钮即可进入运行模式。在组合框ComboBox1中选择一个省份,此时再单击组合框ComboBox2的下拉按钮时,我们就可以方便地选择该省份所属的县市了。

Cico提示:除了在工作表中实现客户的数据采集外,我们还可以通过窗体来实现此操作的录入界面。如果我们需要更改组合框中的列表选项,只需在“地区”表(即Sheet2)中进行相应的更改就可以了。

两种方法的比较:相比之下,用本文提供的第一种方法比较简单,更适合于初学者和一般用户。而第二方法则更适合利用Excel进行二次开发的读者朋友,以便于设计人性化的数据录入界面。

另外,在本例中,“地区”表中的地区数据如果需要添加或删除,若用第一种方法实现,要求添加的同类数据必须要连续且需要重新定义单元格区域。如果用方法二实现,各省份和所属县市添加时可以连续也可以不连续,就这一点而言,比第一种方法要便捷多了。

相信大家在耐心地看完本文以后已经掌握了这两种在Excel中制作级联菜单的方法,只要进行简单的变通,就可以将本文所介绍的技巧应用到其他类似的场合,去解决我们日常办公中遇到的问题。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有