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,180評論 4 61
  • EXCEL小白的進階之路 從16年3月申請的小號,到現在發表的微文,屈指可數,糾結于想要好的內容,好的頁面排版,然...
    Rachelhaha閱讀 1,002評論 0 0
  • 原文鏈接:這里翻譯幫助:谷歌翻譯 Gradle Tips 在過去一年左右,我開始使用Gradle作為我構建基于JV...
    小呀么小黃雞閱讀 7,518評論 0 37
  • 直播主題:如何突破社會階層,向上進階? 一、底層密碼:決定命運的關鍵是什么? 幾乎所有成功人都承認運氣好,不會承認...
    鄭宇辰閱讀 172評論 0 0
  • 今天第一次套路了小陳哥哥,這個老司機厲害了
    安之若素隨遇而安閱讀 187評論 2 3