1. 程式人生 > 實用技巧 >Excel 表格資料驗證如何實現二級下拉框

Excel 表格資料驗證如何實現二級下拉框

在導航欄 點選資料 選擇 資料格式驗證

設定 選擇序列 來源中選擇 需要的資料

右鍵BZJGJ選擇檢視程式碼 複製程式碼儲存

Option Explicit

Sub Worksheet_Change(ByVal Target As Range)
'讓資料有效性選擇 可以多選,重複選
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
If Target.Count > 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler

If rngDV Is Nothing Then GoTo exitHandler

If Intersect(Target, rngDV) Is Nothing Then
   
'do nothing Else Application.EnableEvents = False newVal = Target.Value Application.Undo oldVal = Target.Value Target.Value = newVal If Target.Column = 11 Then '這裡規定好哪一列的資料有效性是多選的,A列是第1列,依次類推,如3就是C列,7就是G列 If oldVal = "" Then 'do nothing Else If newVal = "" Then
'do nothing Else If InStr(1, oldVal, newVal) <> 0 Then '重複選擇視同刪除 If InStr(1, oldVal, newVal) + Len(newVal) - 1 = Len(oldVal) Then '最後一個選項重複 Target.Value = Left(oldVal, Len(oldVal) - Len(newVal) - 1) Else Target.Value = Replace(oldVal, newVal & "
,", "") '不是最後一個選項重複的時候處理逗號 End If Else '不是重複選項就視同增加選項 Target.Value = oldVal & "," & newVal ' NOTE: you can use a line break, ' instead of a comma ' Target.Value = oldVal _ ' & Chr(10) & newVal End If End If End If End If End If exitHandler: Application.EnableEvents = True End Sub

結果