Загрузка данных


Dim PreviousValue As String

' Шаг 1: Запоминаем текущее значение ячейки при клике на неё
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count = 1 Then
        PreviousValue = Target.Value
    End If
End Sub

' Шаг 2: Добавляем новое значение к старому при выборе из списка
Private Sub Worksheet_Change(ByVal Target As Range)
    ' Укажите нужный диапазон ячеек (например, "A1:A100" или "B2")
    If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
        If Target.Cells.Count > 1 Then Exit Sub
        
        ' Если ячейку очистили (нажали Delete), сбрасываем значение
        If Target.Value = "" Then
            PreviousValue = ""
            Exit Sub
        End If
        
        On Error GoTo CleanExit
        Application.EnableEvents = False
        
        ' Если ячейка уже содержала текст, объединяем значения
        If PreviousValue <> "" And PreviousValue <> Target.Value Then
            Target.Value = PreviousValue & ", " & Target.Value
        End If
        
        ' Обновляем сохраненное значение
        PreviousValue = Target.Value

CleanExit:
        Application.EnableEvents = True
    End If
End Sub