Имеется таблица сданными. В ней в колонке "Том" указаны значения в текстовом формате. Например пользователь выбирает три строки (в примере строки 13-15 выделены желтым) и из выбранных строки необходимо собрать все значения с колонки "Том" и прописать в одну ячейку без повторов (как в примере в строке 18). Как видно в примере значения в колонке "Том" разделены запятой и пробелом и в одной ячейке значений может быть 2, а может быть и 7. Также пользователь может выбирать строки не подряд а разные и разное количество.
Пожалуйста, помогите осуществить задуманное
Добрый день!
Имеется таблица сданными. В ней в колонке "Том" указаны значения в текстовом формате. Например пользователь выбирает три строки (в примере строки 13-15 выделены желтым) и из выбранных строки необходимо собрать все значения с колонки "Том" и прописать в одну ячейку без повторов (как в примере в строке 18). Как видно в примере значения в колонке "Том" разделены запятой и пробелом и в одной ячейке значений может быть 2, а может быть и 7. Также пользователь может выбирать строки не подряд а разные и разное количество.
Ravels, привет Вот попробуйте. Делайте правый клик в диапазоне D2:D15 [vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("D2:D15")) Is Nothing Then Exit Sub
Cancel = True Dim s$, v
With Range("rPrimer") s = IIf(Len(.Value), ", " & .Value & ", ", ", ") For Each v In Split(Target.Value, ", ") If InStr(s, ", " & v & ", ") = 0 Then s = s & v & ", " Next .Value = Mid(s, 3, Len(s) - 4) End With End Sub
[/vba]
Ravels, привет Вот попробуйте. Делайте правый клик в диапазоне D2:D15 [vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("D2:D15")) Is Nothing Then Exit Sub
Cancel = True Dim s$, v
With Range("rPrimer") s = IIf(Len(.Value), ", " & .Value & ", ", ", ") For Each v In Split(Target.Value, ", ") If InStr(s, ", " & v & ", ") = 0 Then s = s & v & ", " Next .Value = Mid(s, 3, Len(s) - 4) End With End Sub