Объединение ячеек с сохранением всех данных
Создание объединенной ячейки с сохранением всех записей





К примеру вложен файл с образцом, его можно скачать по кнопке.

Конспекты

Курсы

Практикум


Скачать файл
Ссылка на курс
Теги: Вопрос-ответ по Excel.

Создание объединенной ячейки с сохранением всех записей

К примеру вложен файл с образцом, его можно скачать по кнопке. Уровень сложности примера соответствует курсу: Excel-VII: Создание макросов в Excel VBA с нуля (24 ак.ч.)

Остались в наше время юзеры, которые не работали бы с объединенными ячейками? Вопрос, скорее, шуточный, нежели серьёзный :) Но вот к серьёзным проблемам привести он, однако, может. А все потому, что объединение ячеек сохраняет текст только первой из заполненных ячеек, остальной удаляет безвозвратно. Как же быть, если необходимо объединить несколько ячеек в одну, но при этом сохранить все данные? Как на картинке ниже, например:

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

Этот макрос объединит ячейки по вертикали с сохранением всех записей, при этом сделает соответствующие переносы текста внутри ячейки. А для горизонтального набора ячеек случится все то же самое, но без каких-либо переносов
При желании можно забрать этот макрос в любую свою книгу, для этого сначала сохраните, используя тип с поддержкой макросов. Затем открываем редактор VBA ( Alt+F11 , например, или Разработчик-Код-VisualBasic ), создаем новый модуль ( Insert-Module ) и копируем в него приведенный ниже код. Далее сохраняем книгу и работаем в обычном режиме

1 Sub Объединить_и_сохранить()
2 Dim X As String
3 Dim rng As Range
4 For Each rng In Selection
5 If rng.Row = Selection.Rows.Count + Selection.Row - 1 Then
6 X = X & rng.Value
7 Else
8 X = X & rng.Value & Chr(10)
9 End If
10 Next
11 Application.DisplayAlerts = False
12 Selection.Merge
13 Selection.HorizontalAlignment = xlCenter
14 ActiveCell.Value = X
15 Application.DisplayAlerts = True
16 End Sub

Можно внедрить этот макрос как кнопку на Панель быстрого доступа – для этого вызовите контекстное меню правой кнопкой мыши в любом месте Панели быстрого доступа и выберите команду Настройка панели быстрого доступа, далее в правой части под стрелкой левого списка находим Макросы, выбираем Объединить_и_сохранить и при помощи кнопочки Добавить перебросьте в правый список. Настроить внешний вид кнопки с этим макросом можно при помощи команды Изменить в нижней части окна

Похожие материалы

Фильтрация защищённой СВОДНОЙ ТАБЛИЦЫ
Использование фильтров и срезов в защищённой от изменений сводной таблице
Как сделать так, чтобы пользователи могли бы использовать фильтры и срезы отчета сводной таблицы, но не могли ничего изменить в ней?

Переделка номеров текстовыми функциями
Исправление текста в ячейке с помощью текстовых функций
Как убрать лишние символы из ячеек формулой? Как разделить текст формулами? Как собрать текст в одну ячейку?

Формулы массива для расчёта минимального ненулевого значения
Проверка диапазона МИН функцией ЕСЛИ
Как научить функцию МИН выбирать минимальное значение и не учитывать при этом нули?

Табель учёта рабочего времени в EXCEL
Заполнение рабочих часов, праздников и выходных дней с помощью формул
Как формулами настроить заполнение табеля учета рабочего времени? Шаблон такого табеля можно скачать в этом уроке.

Заказчики

Я сотрудничаю с многими известными компаниями. Вот некоторые из них:

ВТБ МегаФон Глобус Абсолют

Связаться с автором

Оставьте ваше имя и адрес электронной почты, в ближайшее время я свяжусь
с вами для консультации и отвечу на вопросы!



Оставляя заявку, вы соглашаетесь на обработку ваших персональных данных.