Страницы: 1
RSS
Объединение ячеек с нескольких строк и столбцов с запись результата в соседюю правую пустую ячейку, Макрос
 
Добрый день! Помогите, пожалуйста, с решением, на мой взгляд нетривиальной задачи.

Есть несколько ячеек, в которых записаны текстовые и цифровые данные, нужно сделать объединение всех данных в соседнюю пустую ячейку, НО необходимо сделать так, что значения в разных строках в объединенной ячейки шли с новой строки (аналогично комбинации клавиш Alt+Enter).

Считаю, что макросом эту задачу под силу создать. Как я вижу его работу - пользователь выделяет ячейки, потом активирует макрос и в соседней от выделенного диапазона ячеек получает результат.

Пожелание:

1) Чтобы макрос заполнял ячейку с пробелами между слов, знаков и цифр ("яблоко 23");
2) Выбрать любое количество ячеек для объединения.

Спасибо!

P.S. Посмотрел следующие темы по "похожим" вопросам, но они, к сожалению, мне не помогают:(

http://www.planetaexcel.ru/techniques/7/89/

http://planetaexcel.ru/techniques/7/205/ (возможно здесь близко к решению моего вопроса, но данные записываются в разных ячейках, а мне нужно в одной и каждая строка с ячейками  - с новой строчки)
Изменено: Macedon - 19.02.2016 14:10:23
 
Уточните, пожалуйста - в "соседнюю пустую"- в смысле рядом с диапазоном обязательно есть пустая ячейка на первой строке этого диапазона, или ее еще надо найти на листе?
Кому решение нужно - тот пример и рисует.
 
Цитата
Пытливый написал: Уточните, пожалуйста - в "соседнюю пустую"
Сорри, в примере я для наглядности разделил результат пустыми столбцами .

А по тексту, где должен быть отражен результат:
Пример 1 - ячейка F5
Пример 2 - ячейка J15
 
Проверяйте.
Выделяете диапазон, запускаете макрос.
В соседней справа с диапазоном ячейке в первой строке диапазона будет выведен результат. Ячейка должна иметь соответствующие размеры, чтобы результат корректно отобразился.
Код
Sub T_106()
    Dim strS As String
    Dim intI As Integer
    Dim intJ As Integer
        For intI = 1 To Selection.Rows.Count
                For intJ = 1 To Selection.Columns.Count
                    strS = strS & " " & Selection.Cells(intI, intJ)
                Next intJ
            strS = strS & Chr(10)
        Next intI
        strS = Replace(Left(strS, Len(strS) - 1), " ,", ",")
        strS = Replace(strS, " .", ".")
        Selection.Cells(1, intJ) = strS
End Sub


З.Ы. Чуть добавил на скорую руку убийство лишних пробелов между словами и препинаниями (",", "."), если они в разных столбцах
Изменено: Пытливый - 19.02.2016 14:55:20
Кому решение нужно - тот пример и рисует.
 
Пытливый,спасибо! То,что надо!
Страницы: 1
Наверх