Страницы: 1
RSS
макрос Сцепить и Убрать пробелы.
 
Добрый день.
Знаю что есть формула Сцепить и автозамена с " " на "" но было бы удобнее применять макрос для каждого листа.
Обычный такой макрос который бы сцеплял несколько столбцов и сцеплял бы в определенный.
На языке первобытного хотелось чтобы в макросе было следующее Сцепить(а1;а3;а4) в столбец а5
А также еще один макрос с убиранием пробелов во всем документе.
Есть документы, которые требуют подготовки и было бы удобно применять макросы, чем каждый раз вводить формулу.
Был бы очень благодарен.
Изменено: manager2007 - 11.03.2015 13:06:33
 
Цитата
manager2007 написал: макрос с убиранием пробелов во всем документе
Ctrl+h - Найти: " " - Заменить: ничего - Заменить все. Зачем макрос?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
manager2007 написал: в столбец а5
Это что за столбец такой? )
 
В цикле пройтись по диапазонам (или по массивам, в которые загнаны эти диапазоны), сцепить данные.
при выполнении операций в цикле убирать лишние пробелы или делать это после выгрузки на лист с помощью
Replace или Replacement...
Как-то так.

Если сами в этом не разбираетесь и понять не хотите, можно тему перенести в раздел платных заказов.
Может, и здесь помощь придет. В любом случае, пример в файле Excel не помешает.
 
В PLEX есть функция MultiCat.
Про пробелы - запишите замену пробелов (Ctrl+H) на макрорекордер и будет вам макрос.
Работать надо не 12 часов, а головой.
 
Ну убирание пробелов хрен с ним, это уже я обленился наверное)))
столбец а5 образно. Или может коряво объяснил...  В одной строке значения первой второй и третьей ячеек сцепить без пробелов в четвертую и так далее до конца документа. Та же формула сцепить растянутая до низа.
 
manager2007, файл-пример в реальной структуре приложите, выделите что должно быть сцеплено  и куда вставлено. Или куда вставлено будет меняться?
Работать надо не 12 часов, а головой.
 
вот пример. в пятый столбец сцепляется из первых четырех.
проблема в том что подобных файлов много и в них по несколько листов.
 
Так что ли?
Можно на все листы какой-то книги это распространить.
Работать надо не 12 часов, а головой.
 
ага. оно. Можно и на все листы сразу
 
Вот так.
Код
Sub Сцепить()
For Each sh In ActiveWorkbook.Sheets
    lr = sh.Cells(Rows.Count, 1).End(xlUp).Row
    sh.[E1].Resize(lr).FormulaR1C1Local = "=СЦЕПИТЬ(RC[-4];RC[-3];RC[-2];RC[-1])"
Next
End Sub
Работать надо не 12 часов, а головой.
 
Можно для выделения сделать (а то вдруг не 4 столбца, а больше?)
Выделяете диапазон с данными, которые надо сцепить, и запускаете макрос.
Код
Sub manager2007()
Dim lngI As Long
Dim lngJ As Long
Dim strS As String
    For lngI = 1 To Selection.Rows.Count
        For lngJ = 1 To Selection.Columns.Count
            strS = strS & Selection.Cells(lngI, lngJ)
        Next lngJ
    Selection.Cells(lngI, lngJ) = strS
    strS = ""
    Next lngI
End Sub

Кому решение нужно - тот пример и рисует.
 
Прекрасно. Спасибо большое))
Страницы: 1
Наверх