Private Sub Worksheet_Change(ByVal Target As Range)
Dim OldValue As String
Dim NewValue As String
' Укажите диапазон, где должен работать выбор (например, столбец A)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
On Error Resume Next
If Target.Value = "" Then Exit Sub
Application.EnableEvents = False
NewValue = Target.Value
Target.Undo
OldValue = Target.Value
If OldValue = "" Then
Target.Value = NewValue
Else
' Разделитель между значениями — запятая и пробел
Target.Value = OldValue & ", " & NewValue
End If
Application.EnableEvents = True
End Sub