excel vba级联

1 选择省 然后可以选择对应的城市
完成后的最终效果如下:


最终效果

首先建立如下表格


建立初始表格

然后选择菜单-公式-名称管理器,建立两个一级条目
建立两个一级条目

然后选择A6单元格,选择菜单-数据-数据验证的第一个选项,允许处选择序列,来源处注意。

数据有效性

现在省份可以选择了


选择省份

在选中B6单元格,选择菜单-数据-数据验证的第一个选项,允许处选择序列,来源处注意。

选择城市

大功告成!

基本的级联

发现个问题,选择苏州后城市一栏还是河北的城市,也就是需要清空下城市,这时就得用vba了。
在下方的sheet1处右击,选择查看代码...

查看代码

这时弹出VBE编辑窗口,输入下面这段代码

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$6" Then Range("$B$6").ClearContents
End Sub

当用户更改工作表中的单元格,或外部链接引起单元格的更改时产生触发上面代码。
当用户切换的是A6单元格的内容,则会将B6的内容清空。
效果如下

切换时清空城市

现在还有一种特殊需求,即当选择的是河北时,城市处需要变灰,而且不可编辑,不可选择;当省份是江苏时,可以正常选择。
最终代码如下


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = [b6].Address Then Cancel = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$6" Then Range("$B$6").ClearContents
If [a6] = "河北" Then
    Cells(6, 2).Interior.ColorIndex = 15
    Else
    Cells(6, 2).Interior.ColorIndex = 0
End If
End Sub

第一段代码是禁止了B6单元格的双击事件
第二段是如果选择的是河北则B6单元格颜色置灰
同时需要重新设置名称选择器,编辑名称管理器内的河北,改成如下所示,点击确定

修改名称管理器

最终效果如图:

最终效果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,261评论 4 61
  • EXCEL小白的进阶之路 从16年3月申请的小号,到现在发表的微文,屈指可数,纠结于想要好的内容,好的页面排版,然...
    Rachelhaha阅读 1,103评论 0 0
  • 原文链接:这里翻译帮助:谷歌翻译 Gradle Tips 在过去一年左右,我开始使用Gradle作为我构建基于JV...
    小呀么小黄鸡阅读 7,546评论 0 37
  • 直播主题:如何突破社会阶层,向上进阶? 一、底层密码:决定命运的关键是什么? 几乎所有成功人都承认运气好,不会承认...
    郑宇辰阅读 179评论 0 0
  • 今天第一次套路了小陈哥哥,这个老司机厉害了
    安之若素随遇而安阅读 190评论 2 3