Макрос слияния (сцепки) текста из ячеек в «Excel» без потери данных.
Ранее уже рассказывал о замечательной функции в программе Excel, которая называется «СЦЕПИТЬ».
Функция довольно удобная, не есть у нее один большой недостаток ячейки для сцепки нужно указывать по одной, выделение диапазона не работает или работает некорректно.
Для больших объемов сцепки (слияния текста) требуются значительные трудозатраты.
Достойных аналогов этой функции, к сожалению, найти не удалось.
На помощь пришел язык VBA для написания макросов в «Excel».
Ниже приведу простейший макрос, который позволяет соединять между собой значения ячеек в выделенном диапазоне. (Производить их слияние. )
Макрос слияния выглядит следующим образом:
- Sub Sliyanie()
- Dim txt As String ‘Объявляем переменную ТХТ
- txt = «» ‘присваиваем объявленной переменной пустое значение
- Dim cell
- For Each cell In Selection ‘ для всех ячеек в выделении выполняем следующие действия
- txt = txt + cell.text ‘к значению переменной txt добавляем значение ячейки
- Next
- MsgBox (txt) ‘выводим итоговое значение
- End Sub
Это самый простой вариант макроса слияния текстовых значений ячеек в выделенном диапазоне.
Его можно усложнить и оптимизировать под выполнение Вашей конкретной задачи.
Например:
Добавить форму UserForm с двумя полями TextBox. В одном поле указывать разделитель ( «/», «;», «.», и т.д.) а в другое поле выводить результат для удобства копирования.
Можно на форму UserForm вывести кнопки активации макроса «Соединить» и для ленивых кнопку «Копировать» — для копирования содержимого поля с результатом в буфер обмена.
Макрос копирования по ссылке: http://ruexcel.ru/ctrlc/
Можно добавить чек бокс (checkbox) для выбора учитывать пустые ячейки или пропускать их.
Вариаций очень много и их набор зависит только от задачи, которую будет выполнять макрос слияния ячеек.