Заполнить соседние ячейки выделенного диапазона его значениями через разделитель - VBA
Формулировка задачи:
Помогите с макросом, который должен делать следующее:
1. Пользователь выделяет диапазон (всегда только в одном столбце)
2. Создаем массив и записываем в него значение ячеек выделенного диапазона
3. Перебираем массив и заполняем каждую соседнюю ячейку выделенного диапазона значениями выделенных ячеек через разделитель ";"
3.1 Пропускаем (не записываем) значение, которое есть в соседней слева (выделенной) ячейке
Например, выделенный диапазон из четырех ячеек с такими значениями:
1
2
3
4
Соседний столбец должен быть
2;3;4
3;4;1
4;1;2
1;2;3
P.S. Cейчас делаю в отдельной книге с помощью формул, а потом переношу результат в другую книгу. Очень долго получается..
Решение задачи: «Заполнить соседние ячейки выделенного диапазона его значениями через разделитель»
textual
Листинг программы
- Sub JoinSelection()
- Dim a(), b()
- Dim i&, ii&, j&, rw&, cl&
- '-----------------------------
- With Selection
- a = .Value
- rw = .Row
- cl = .Column + 1
- End With
- For i = 1 To UBound(a)
- ReDim b(1 To UBound(a) - 1)
- j = 0
- For ii = 1 To UBound(a)
- If a(ii, 1) <> a(i, 1) Then
- j = j + 1
- b(j) = a(ii, 1)
- End If
- Next
- Cells(rw, cl) = Join(b, ";")
- rw = rw + 1
- Next
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д