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單元格顏色置灰
同時需要重新設置名稱選擇器,編輯名稱管理器內的河北,改成如下所示,點擊確定
修改名稱管理器
最終效果如圖:
最終效果