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单元格颜色置灰
同时需要重新设置名称选择器,编辑名称管理器内的河北,改成如下所示,点击确定
最终效果如图: