来源:link
- 先在某列利用数据验证-建立下拉菜单表;
- 在下拉表所打开的sheet中(如sheet1),鼠标右击下面的工作表。选择“查看代码”,打开VBA编辑界面;
- 复制以下代码,并将其中一行的 If Target.Column = 3 Then 中的3修改为下来数据表所在的列数。(代码来源:Excel Data Validation - Select Multiple Items)
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 exitHandlerOn Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandlerIf rngDV Is Nothing Then GoTo exitHandlerIf Intersect(Target, rngDV) Is Nothing Then'do nothing
ElseApplication.EnableEvents = FalsenewVal = Target.ValueApplication.UndooldVal = Target.ValueTarget.Value = newValIf Target.Column = 3 ThenIf oldVal = "" Then'do nothingElseIf newVal = "" Then'do nothingElseTarget.Value = oldVal _& ", " & newVal
' NOTE: you can use a line break,
' instead of a comma
' Target.Value = oldVal _
' & Chr(10) & newValEnd IfEnd IfEnd If
End IfexitHandler:Application.EnableEvents = True
End Sub