當前位置:編程學習大全網 - 編程軟體 - excel下拉框多選設置

excel下拉框多選設置

第壹步:新建壹個excel且設置數據有效性選中X列--數據--有效性

第二步:開發工具--查看代碼--把代碼復制進去保存就OK了

代碼如下:

Private Sub Worksheet_Change(ByVal Target As Range)

' Developed by Contextures Inc.

' www.contextures.com

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 = 7 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

  • 上一篇:cuda helloworld 沒有GPU顯示,問題出在哪裏?哪位大神可以告訴我?
  • 下一篇:編程字
  • copyright 2024編程學習大全網