Добрый день. Знаю что есть формула Сцепить и автозамена с " " на "" но было бы удобнее применять макрос для каждого листа. Обычный такой макрос который бы сцеплял несколько столбцов и сцеплял бы в определенный. На языке первобытного хотелось чтобы в макросе было следующее Сцепить(а1;а3;а4) в столбец а5 А также еще один макрос с убиранием пробелов во всем документе. Есть документы, которые требуют подготовки и было бы удобно применять макросы, чем каждый раз вводить формулу. Был бы очень благодарен.
В цикле пройтись по диапазонам (или по массивам, в которые загнаны эти диапазоны), сцепить данные. при выполнении операций в цикле убирать лишние пробелы или делать это после выгрузки на лист с помощью Replace или Replacement... Как-то так.
Если сами в этом не разбираетесь и понять не хотите, можно тему перенести в раздел платных заказов. Может, и здесь помощь придет. В любом случае, пример в файле Excel не помешает.
Ну убирание пробелов хрен с ним, это уже я обленился наверное))) столбец а5 образно. Или может коряво объяснил... В одной строке значения первой второй и третьей ячеек сцепить без пробелов в четвертую и так далее до конца документа. Та же формула сцепить растянутая до низа.
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
Можно для выделения сделать (а то вдруг не 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