Содержание
Здравствуйте, друзья! Объединение ячеек это рутинная операция при создании и редактировании таблиц, которая используется очень часто. Проблем при создании таблиц с нуля как правило не возникает.
Другое дело, если мы в Excel экспортируем (или открываем) уже созданные кем – то готовые таблицы. Часто необходимо привести их к виду, который нам необходим. И вот тут возникают проблемы – при объединении ячеек часть информации в некоторых удаляется. На простом примере покажу, как создать кнопки в документе и привязать к ним нужный программный код для своих нужд.
Как объединить ячейки в excel в таблице ?
Для начала вспомним суть проблемы. Стандартный способ объединения ячеек делаем через “формат ячеек” выделив нужные ячейки и вызвав правой кнопкой контекстное меню. Еще проще и быстрее найти в главном меню нужную кнопку:
С пустыми ячейками проблем нет. А если в нужных ячейках уже содержится информация, возникает всем известная проблема. Как быть, если объединять приходится не две ячейки а больше? Да еще и сохранить все раннее введенные данные ? Об этом и поговорим.
Как в excel объединить две ячейки в одну без потери данных и значений через пробел?
Можно например склеивать текст из ячеек в одну “фразу” с помощью функции “сцепить” или объединять содержимое через знак “&” (амперсанд), вводя формулы. Но, ввод формулы по сути не является объединением ячеек таблицы, потому что мы в отдельную ячейку таким способом помещаем всего лишь информацию из других разных ячеек, а не объединяем их.
Местоположение будущей кнопки выбираем в любом удобном месте документа. Курсор примет вид крестика; нажимаем левую кнопку мыши и рисуем границы:
Появится окошко макроса Пока нажимаем на кнопку “Создать”. Откроется редактор VBA; удаляем из окна весь текст и копируем туда вместо него текст следующей процедуры:
Sub MergeToOneCell()
Const sDELIM As String = ” ” ‘
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> “Range” Then Exit Sub ‘
With Selection
For Each rCell In .Cells
sMergeStr = sMergeStr & sDELIM & rCell.Text ‘
Next rCell
Application.DisplayAlerts = False ‘
.Merge Across:=False ‘
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM)) ‘
End With
End Sub
В данной процедуре символ разделитель между строками будет знак пробела. Это значит, что данные в объединенной ячейке будут располагаться друг за другом.
В окне редактора код выглядит следующим образом:
Нажимаем значок “сохранить”, если нигде нет красных строк во вставленном коде – закрываем редактор. Теперь нужно привязать созданную процедуру к нашей нарисованной кнопке. Для этого правой кнопкой мыши вызываем нужный пункт:
Здесь видим название нашей процедуры – выбираем его. А так же обозначим местонахождение макроса – только в данном документе.
В новых версиях Office при попытке сохранить документ будет выведено сообщение о том, что сначала его нужно сохранять в формате “Документ Excel с поддержкой макросов”. Только после этих действий кнопка начнет работать.
Для придания красивого внешнего вида нашей кнопочке можно изменить ее наименование, цвета и размеры выбрав в контекстном меню нужные пункты:
Проверяем работу кнопки – сначала выделяем нужные ячейки и затем жмем кнопку. Заработало? Ура!!
Объединяем две текстовые ячейки в excel в одну через перенос строки
Sub MergeAllData()
Dim delim As String, newdata As String
Dim rng As Range
If TypeName(Selection) <> “Range” Or Selection.Count <= 1 Then Exit Sub
delim = vbLf
newdata = “”
For Each rng In Selection
newdata = newdata & rng.Value & delim
Next rng
Application.DisplayAlerts = False
Selection.Merge
Selection = Left(newdata, Len(newdata) – Len(delim))
Application.DisplayAlerts = True
End Sub
И соответственно, будет у нас две процедуры, которые одна под другой. В списке макросов они буду располагаться в алфавитном порядке; запомните имя процедуры (Sub)
Сохраняем изменения в редакторе. Создаем вторую кнопку и присваиваем ей снова макрос, только выбираем новую процедуру, переименовываем кнопку. Закрепляем области таблицы; начинаем работать с нужными ячейками:
Вот так работает сегодняшний пример. Возможности VBA языка обширны и с его помощью для Excel можно сильно расширить возможности работы, под себя. Удачи в изучении эксель! Пока!