Объединить ячейки чтобы придать таблице читабельный вид очень часто существенно усложняется с увеличением объема данных. Так же весьма неблагодарным занятием является присвоение соответственных границ для ячеек. На помощь пользователям приходят макросы, благодаря которым все эти действия можно выполнить автоматически.
Автоматическое объединение большого количества ячеек по вертикали
Допустим мы имеем маркетинговый план внедрения нового информационного программного продукта:
Чтобы план было легче визуально анализировать лучше объединить ячейки этапов выполнения плана: A2:A4, B2:B4 и т.д. К сожалению, многократно объединять диапазоны с большим количеством строк вручную – это задание требует слишком много времени и сил. Кроме того, можно допустить много ошибок после очередного десятка выделения ячеек перед объединением. Рассмотрим каким способом можно существенно облегчить свой труд переложив большую часть работы на простую программу, написанную на языке VBA прямо в Excel. Для этого следует написать макрос, который безошибочно быстро и автоматически объединит ячейки диапазонов с разным количеством строк для каждого столбца.
- Сначала откройте редактор макросов: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» (или просто нажмите ALT+F11).
- Откройте стандартный модуль выбрав инструмент в редакторе: «Insert»-«Module» и введите в него следующий код макроса для объединения ячеек:
Sub ObedenitVertikal()
Dim i As Long
Dim j As Long
Dim intext As String
Application.DisplayAlerts = False
For i = 1 To Selection.Columns.Count
intext = Selection.Cells(1, i)
For j = 2 To Selection.Rows.Count
intext = intext & Chr(10) & Selection.Cells(j, i)
Next
Selection.Columns(i).Merge
Selection.Cells(1, i) = intext
Next
Application.DisplayAlerts = True
End Sub
Пока что это еще не полная версия макроса поэтому перед тем как его проверить нам все еще вручную необходимо выделить первый диапазон A2:D4. После чего можно выполнить нашу первую версию макроса.
Запуск макроса для объединения ячеек
Выбираем инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы».
В появившемся диалоговом окне выделяем значение «ObedenitVertikal» и нажимаем на кнопку «Выполнить».
Потом снова вручную выделите новый диапазон A5:D9 и повторно выполните тот же макрос. Ячейки будут выделены как показано ниже на рисунке:
В начале кода определены 3 переменные: две из них выполняют функцию счетчика, а третья служит для временного хранения текстового содержания ячеек. Счетчик первой переменной в цикле проходит по очереди все столбцы выделенного диапазона ячеек. В каждом таком столбце в текстовую переменную записывается текст, который содержится в первой ячейке каждого выделенного столбца. Второй счетчик идет по строкам каждого столбца и дописывает в текстовую переменную текстовые значения из остальных ячеек каждого текущего столбца выделенного диапазона – сверху вниз. Тексты, взятые из отдельных ячеек разделяться символом обрыва строки.
Символ обрыва строки вставлен с помощью функции Chr(10). Каждый вводимый символ из клавиатуры имеет свой код ASCII. Если введем код 10 в качестве аргумента для функции Chr(), тогда она будет возвращать символ обрыва строки. Такой же код ASCII на клавиатуре вызывается клавишей Enter для обрыва строки во всех текстовых редакторах.
Потом остальной код макроса объединяет все ячейки столбцов в выделенном диапазоне, а потом заполняет их текстом из текстовой переменной. Чтобы не появлялось предупреждающее сообщение об объединении ячеек, в начале кода программы макроса отключаем отображение сообщений в Excel средствами программирования. Для этой цели используем свойство: Application.DisplayAlerts = Fale. После выполнения кода макроса изменяем значение свойства на True, чтобы в дальнейшем процессе работы с программой Excel все сообщения предупреждений (Alerts) имели возможность отображаться.
Внимание! Если ячейки выделенного диапазона будут содержать формулы, то после выполнения макроса эти формулы будут заменены на текст. В результате после объединения ячеек макросом, формулы могут быть утеряны.
Модернизация и настройка кода макроса для объединения ячеек
Если нам нужно изменить текст разделяющий отдельные строки символов содержащийся в целых ячейках, то можно вписать другой код символа, текст или несколько текстов соединенных символом амперсантом (&). Допустим мы хотим вставить между двумя символами разрыва строки текст, состоящий из пяти тире «——». Тогда данную строку следует модифицировать следующим образом:
intext = intext & Chr(10) & “——” & Chr(10) & Selection.Cells(j, i)
Если в объединенной ячейке мы хотим всегда вставлять только текст из первой ячейки в выделенном столбце (без текстов, записанных в остальных ячейках), тогда удалим или закомментируем переменную второго счетчика и часть кода второго цикла:
Если нам нужно чтобы выполнять макрос после выделения нескольких диапазонов (с удержанием клавиши CTRL), тогда можно добавить еще одну переменную, которая будет дополнять функцию счетчика:
Dim k As Long
Перед первым циклом добавим новую строку с кодом:
For k = 1 To Selection.Areas.Count
А после последнего цикла добавим строку конца нового цикла:
Next
Соответственно добавим новый отступ, чтобы код был более читабельным. Кроме того, после всех изменений для объекта Selection добавим ссылку на диапазон:
Selection.Areas(k)
Полная новая версия макроса для объедения ячеек выделенных нескольких диапазонов, выглядит так:
Sub ObedenitVertikal()
Dim i As Long
Dim j As Long
Dim k As Long
Dim intext As String
Application.DisplayAlerts = False
For k = 1 To Selection.Areas.Count
For i = 1 To Selection.Areas(k).Columns.Count
intext = Selection.Areas(k).Cells(1, i)
For j = 2 To Selection.Areas(k).Rows.Count
intext = intext & Chr(10) & Selection.Areas(k).Cells(j, i)
Next
Selection.Areas(k).Columns(i).Merge
Selection.Areas(k).Cells(1, i) = intext
Next
Next
Application.DisplayAlerts = True
End Sub
Тепер выделяем 2 диапазона подряд A2:D4, A5:D8, A с нажатой клавишей CTRL на клавиатуре:
В результате получаем идентичный вид таблицы с объединенными ячейками:
Читайте также:
Как разъединить объединенные ячейки в Excel используя макрос.
Как объединить столбцы в Excel используя макрос.
Если выполнить первую версию макроса (без всех этих изменений), для многократного выделения диапазонов с нажатой клавишей CTRL, то объединение строк по столбцам будет выполнено только для первого диапазона.
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
1 |
|
Эксель-объединить строки27.09.2018, 13:22. Показов 1543. Ответов 18
здравствуйте, подскажите как в экселе программно
0 |
Заблокирован |
||||
27.09.2018, 13:58 |
2 |
|||
Ципихович Эндрю, очень трудно угадывать направление ваших мыслей, но пробую в очередной раз
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
27.09.2018, 14:09 [ТС] |
3 |
|||
спс, я то в экселе плаваю..
получил:
0 |
Заблокирован |
|
27.09.2018, 14:15 |
4 |
объединение ячеек приведёт к потере всех значений Никак!
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
27.09.2018, 14:40 [ТС] |
5 |
|||
может что типа, сначала в переменную заносим данные с нужных ячеек, очищаем их, объединяем, затем в объединенную ячейку вводим данные с переменной?
естественно код не взлетает-как поправить? спс
0 |
2632 / 1637 / 745 Регистрация: 23.03.2015 Сообщений: 5,143 |
|
27.09.2018, 15:16 |
6 |
может что типа, сначала в переменную заносим данные с нужных ячеек Совершенно верно
0 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
27.09.2018, 15:17 [ТС] |
7 |
так не владею экселем, подправьте пжл код
0 |
Narimanych 2632 / 1637 / 745 Регистрация: 23.03.2015 Сообщений: 5,143 |
||||
27.09.2018, 15:31 |
8 |
|||
Ципихович Эндрю,
В переменную М записываются значения всех ячеек данного диапазон…
1 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||
27.09.2018, 15:52 [ТС] |
9 |
|
Вы не поняли, данные с «C4:AM4» брать не стоит, так как она уже объединена, нужно её и данные с них объединять с «c5:am5», как?, лучше файл приложу Вложения
0 |
Narimanych 2632 / 1637 / 745 Регистрация: 23.03.2015 Сообщений: 5,143 |
||||
27.09.2018, 17:02 |
10 |
|||
Ципихович Эндрю, Попробуйте
1 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
27.09.2018, 18:03 [ТС] |
11 |
я это делаю пока пошагово нажимая
0 |
Заблокирован |
|
27.09.2018, 19:16 |
12 |
Ципихович Эндрю, бесполезное с невозможным совмещать — это ваше кредо?
0 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
27.09.2018, 19:48 |
13 |
|||
Ципихович Эндрю,
1 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
27.09.2018, 19:52 [ТС] |
14 |
спасибо за ответ
у верхней строки видна только её нижняя часть — это уже очень плохо-как избавиться? спс
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
27.09.2018, 20:35 |
15 |
у верхней строки видна только её нижняя часть — это уже очень плохо-как избавиться? Увеличить высоту строки. Или уменьшить шрифт (сильно придется уменьшить). В Excel нет настройки межстрочного интервала как в Word.
0 |
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
27.09.2018, 22:19 |
16 |
Никак! — а вот и нет
0 |
Заблокирован |
|
27.09.2018, 23:58 |
17 |
Казанский, Hugo121, Вы можете разговаривать с ТС до заговенья, дело с точки не снимется
0 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
28.09.2018, 07:13 [ТС] |
18 |
Записывать в макрос не стал, ибо не вижу смысла (не вижу задачи) спасибо, файл же приложен в посте 9, нужно кооректно программно объединит ячейки
0 |
Narimanych 2632 / 1637 / 745 Регистрация: 23.03.2015 Сообщений: 5,143 |
||||
28.09.2018, 11:17 |
19 |
|||
Ципихович Эндрю, выделите необходимые ячейки для объединения , затем запустите
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
28.09.2018, 11:17 |
Помогаю со студенческими работами здесь Объединить две строки s1 и s2, причем из второй строки копировать не более n символов Прочитать 3 строки, объединить 1 со 2, 2 с 3, 1 с 3. Вывести все три новые строки Прочитать 3 строки, объединить 1 со 2, 2 с 3, 1 с 3. Вывести все три новые строки Если строки одинаковы, объединить две строки, исключив из второй первые десять символов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 19 |
I have a similar question to this one:
Merge the contents of 2 cells into another 3rd cell using VBA in Excel
But I want to combine a range of cells within a column, eg A2:A50. Sometimes I have over 300 cells to be combined into one. Values are text. Is there any way to modify this macro so that it works on a range instead of just two cells?
Thanks!
asked Jan 18, 2010 at 22:45
Based on the thread you are citing, I guess you wish to return the concatination of all the values held by the cells, interpreting all the values as strings?
For that, you could use a VBA macro that looks like this:
Function ConcatinateAllCellValuesInRange(sourceRange As Excel.Range) As String
Dim finalValue As String
Dim cell As Excel.Range
For Each cell In sourceRange.Cells
finalValue = finalValue + CStr(cell.Value)
Next cell
ConcatinateAllCellValuesInRange = finalValue
End Function
As an example, you could call it like this:
Sub MyMacro()
MsgBox ConcatinateAllCellValuesInRange([A1:C3])
End Sub
Is this what you were looking for?
Mike
answered Jan 18, 2010 at 23:18
Mike RosenblumMike Rosenblum
12k6 gold badges48 silver badges64 bronze badges
Try the following macro, not very elegant in that it doesn’t do any error checking etc but works. Assign the macro to a button, click in a cell, click the macro button, highlight the desired (source) range to merge using your mouse (will autofill in range in the input box in the dialogue box), click ok, highlight the destination cell (will autofill the input box in the next dialogue box) click ok, all cells will be merged with a single space character into the destination cell, which can be in the original source range). Up to you to delete the superfluous cells manually. Workks with both rows and columns but not blocks.
Sub JoinCells()
Set xJoinRange = Application.InputBox(prompt:="Highlight source cells to merge", Type:=8)
xSource = 0
xSource = xJoinRange.Rows.Count
xType = "rows"
If xSource = 1 Then
xSource = xJoinRange.Columns.Count
xType = "columns"
End If
Set xDestination = Application.InputBox(prompt:="Highlight destination cell", Type:=8)
If xType = "rows" Then
temp = xJoinRange.Rows(1).Value
For i = 2 To xSource
temp = temp & " " & xJoinRange.Rows(i).Value
Next i
Else
temp = xJoinRange.Columns(1).Value
For i = 2 To xSource
temp = temp & " " & xJoinRange.Columns(i).Value
Next i
End If
xDestination.Value = temp
End Sub
answered Aug 23, 2011 at 15:15
Just to add to Mike’s solution, if you want to get your range from a variable instead of a defined range (I had trouble with the syntax):
Sub MyMacro()
dim myVar As Range
MsgBox ConcatinateAllCellValuesInRange(myVar)
End Sub
answered Apr 13, 2015 at 9:55
Here is a macro developed circa 2006.
I still use it today!
Usage:
- Select the cells you want to merge (the marco assumes they are all in the same column, one below the other)
- Run the macro (a good idea is to assign it a short-cut key via Excel’s Developer->Code->Macros-> select the macro -> Options)
Sub MergeCells()
'
Dim myString As String
Dim myUnion As Range
Count = Selection.Count
myValue = Selection
myrow = Selection.Row
mycol = Selection.Column
myString = ""
For Index = 1 To Count
If Index > 1 Then myString = myString & Chr(10) & myValue(Index, 1) Else myString = myValue(Index, 1)
Next Index
Selection.ClearContents
Cells(myrow, mycol) = myString
' Uncomment this loop if you want to delete the rows that are below the top cell (the rows with the cells whose content was concatenated to the top cell)
' For Index = 1 To Count - 1
' Rows(myrow + 1).Delete
' Next Index
Cells(myrow, mycol).Select
End Sub
answered Mar 25 at 18:02
Объединение текста из двух или нескольких ячеек в одну
Смотрите такжеЗдесь либо макрос, Фамилия+Имя+Отчество+Серия+Номер данные ребенка повторялосьПолная версия модифицированного кода
Объединение данных с помощью символа «амперсанд» (&)
-
одновременно для несколькихТеперь если нам нужно показателей с распределением
-
чтобы расцепить только фамилию=СЦЕПИТЬ(A2;» «;B2), котораяИмя – ячейки вС помощью оператора &
-
ПроблемаFourthВажно:Ячейку, которая не была
-
автоматически, поэтому ееДанные из нескольких ячеек либо UDFMichael_S 1 раз, и макроса:
Объединение данных с помощью функции СЦЕП
-
выделенных строк. одновременно объединять диапазоны по кварталам.
-
– формула: =ПРАВСИМВ(C4;ПОИСК(« объединяет текстовые значения этой колонке содержат
-
можно объединять текстовыеОписание
Pine В Excel 2016, Excel Mobile создана путем объединения, текст может содержать можно объединить в
-
Nic70y: Вот если названия в нужном столбцеSub JoinEmpty() кварталов, чтобы избавиться
support.office.com
Объединение и отмена объединения ячеек
Нам необходимо объединить ячейки «;C4;1)+1) в одну строку. текстовые данные полученные элементы, не прибегаяКавычки отображаются в строке32 и Excel Online невозможно разделить. Если неточности и грамматические одну с помощью: вот это уточните листов и предметов (с предметом) стоялаDim i AsЧто если в нашей от пустых ячеек, на первой строкеФактически функция СЦЕПИТЬ устарела, Однако на практике из базы картотек
к функции. результата.Формула эта функция заменена вы ищете сведения ошибки. Для нас
Объединение ячеек
-
символа «амперсанд» (&)
-
и желательно в в первой строке оценка. Пример прикрепляю.
Long таблице потребуется выполнить выделите диапазон B1:L2. таким образом, чтобы но все еще мы не рекомендуем кадрового отдела.Например, =A1 & B1Используйте точку с запятойОписание функцией СЦЕП. Функция о том, как важно, чтобы эта
Отмена объединения ячеек
-
или функции СЦЕП. файле (пару листов сделать одинаковыми, тоЯ пробовал свестиDim j As
-
аналогичное объединение пустых После чего запустите
ячейка с названием доступна пользователям в
-
использовать функцию СЦЕПИТЬ,Фамилия – в данном возвращает то же для разделения текстовых=СЦЕПИТЬ(«Популяция рек для «;A2;» СЦЕПИТЬ пока еще распределить данные из статья была вамВыделите ячейку, в которую достаточно) и как
-
можно так все данные в Long ячеек сразу в макрос: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«JoinEmpty»-«Выполнить». Ячейки квартала была объединена новых версиях программы а в место столбце находиться только
support.office.com
Функция СЦЕПИТЬ в Excel, включая примеры
значение, что и элементов. Например: Excel «;A3;» составляет «;A4;» доступна для обратной ячейки по нескольким полезна. Просим вас вы хотите вставить должен выглядеть результат.или макросом одну таблицу иFor j = нескольких строках – объединяться в соответствии с пустыми ячейками Excel. нее просто применять фамилии сотрудников. =CONCATENATE(A1,B1). Во многих отобразит результат функции на километр.») совместимости, однако рекомендуем
ячейкам, см. статью уделить пару секунд объединенные данные.FleirosNic70y сделать сводную таблицу, 1 To Selection.Rows.Count
одновременно? Для этого с продолжительностью каждого находящиеся справа отМакросы незаменимы при форматировании в формулах операторВ третьем столбце «Имя случаях воспользоваться оператором =СЦЕПИТЬ («Привет, «»мир!»)Создает предложение, объединяя данные использовать вместо нее Распределение содержимого ячейки и сообщить, помоглаВведите = (знак равенства)
: Спасибо большое за: Тот же принцип
но она у
-
For i = нужно добавить несколько квартала, как на
-
нее. И так
и изменении структуры |
&, так как |
+ Фамилия» необходимо амперсанда проще и |
как «Привет,»мир!» с в столбце А функцию СЦЕП. В на соседние столбцы. ли она вам, |
и выберите первую терпение. Прикрепляю файл |
200?’200px’:»+(this.scrollHeight+5)+’px’);»>ДВССЫЛ меня не получилась 1 To Selection.Columns.Count строк в код |
Примеры
рисунке: для каждого названия в больших таблицах она имеет ряд объединить имя и быстрее, чем создавать лишней кавычкой, так
с остальным текстом. |
||
последующих версиях Excel |
Ячейку, полученную путем объединения, |
с помощью кнопок |
ячейку, которую нужно |
с исходными данными |
Fleiros |
в нужном виде. |
||
If Selection.Cells(j, i) |
нашего макроса. Но |
|
В данном коде цикл квартала. Excel. В данном |
своих недостатков. фамилию каждого сотрудника строки с помощью как пропущена запятая Результат: «Популяция рек функция СЦЕПИТЬ может можно снова разделить |
|
внизу страницы. Для |
объединить. и желаемым результатом.: Спасибо. Какой то хаос = «» Then |
|
сначала подготовим исходную |
проходит по всемВыделение отдельных групп ячеек примере мы рассмотрим, для последующего использования функции СЦЕПИТЬ. |
|
между текстовыми аргументами. |
для вида речная быть недоступна. на отдельные ячейки. удобства также приводимВведите символP.S. по поводуЯ к сожалению из кучи «вложений» |
|
ActiveSheet.Range(Selection.Cells(j, i - таблицу. |
ячейкам первой строки вручную может потребовать как с помощью3 главных недостатка функции в сводных таблицахСм. дополнительные сведения обЧисла не нужно заключать форель составляет 32 |
Распространенные неполадки
Синтаксис: |
Если вы не |
ссылку на оригинал& |
количества оценок имеется неверно сформулировал вопрос вышел. К сожалению 1), Selection.Cells(j, i)).MergeДопустим нам для последних выделенного диапазона, слева много времени и макроса можно быстро СЦЕПИТЬ по сравнению и отчетах, сформированных использовании операторов вычислений. |
в кавычки. на километр». |
СЦЕПИТЬ(текст1;[текст2];…) помните, где находятся (на английском языке).и пробел, заключенный ввиду то, что изначально, не разобрался какEnd If трех отделов необходимо
|
в кавычки. у одного может |
UPD: Дети не со сводными таблицамиNext разбить данные на каждая из них |
Рекомендации
обработке несколько таких |
все пустые ячейки |
Ограниченное максимальное количество объединяемыхДля этого необходимо попарно |
строк используйте функцию к другу.Объединяет строку в ячейке=СЦЕПИТЬ(«Популяция рек для «;A2;» команду ячейки, но можноВыберите следующую ячейку, которую быть только по всегда идут в работать. Возможно естьNext 2 полугодия. Исходный на наличие значений. подобных бюджетов. Да в строках таблицы |
значений ячеек до объедини тексты из ТЕКСТ. |
Если не поместить пробелы В2, пробел и «;A3;» составляет «;A4;»Найти отобразить его как нужно объединить, и русскому языку оценка, одном порядке (как более удобное решение,Selection.HorizontalAlignment = xlVAlignCenter вид таблицы будет Если проверяемая ячейка и количество объединяемых |
support.office.com
Лучшая альтернатива функции СЦЕПИТЬ и объединить текст в Excel
Excel. 255. ячеек столбцов таблицыФункция ТЕКСТ преобразует числовое между текстовыми элементами, значение в ячейке на километр.»)для их поиска. если бы ячейки нажмите клавишу ВВОД. у другого по в примере), а надеюсь на ВашуEnd Sub
Как сцепить два текста в один с помощью и без функции Excel?
выглядеть следующим образом: не содержит никаких ячеек не всегда
- У нас иметься таблицаФункция объединяет только текстовые в общие строки. значение в текст в строке результата
- С2. Результат: «Виталий=СЦЕПИТЬ(В2;» «;C2)Примечание:
была разделена, объединение Пример формулы: 10 предметам оценки. так же в помощь. Заранее спасибо.Теперь, нам осталось толькоЕсли нам нужно изменить значений (пуста), макрос
одинаковое – а бюджета для разных значения, а операторНа рисунке проиллюстрированный пример
и объединяет числа они будут отображаться Токарев».Имя аргумента Мы стараемся как можно ячеек над ней.=A2&» «&B2Внутри одного предмета одной вкладке может
UPD: Дети не лишь выделить диапазон так, чтобы его объединяет ее с это уже требует отделов. Суммы распределены & объединит любые решения данной задачи. с текстом или слитно. Добавьте пробелы=СЦЕПИТЬ(С2;», «;В2)Описание оперативнее обеспечивать васВыделите ячейки для объединения..
только 1 оценка быть 200 строк, всегда идут в B1:L12 и запустить
можно было применить предыдущей ячейкой. А дополнительного внимания от по месяцам. Итоговые значения ячеек. Для этой цели символами. в формулу сОбъединяет текст в ячейкетекст1 актуальными справочными материаламиВыберите
Выделите ячейку, в которую
на ученика. а в другой одном порядке (как
- новую версию макроса: одновременно для нескольких если же проверяемая
- пользователя, иначе будут суммы по каждомуФункция требует немного больше в примере должен
- Например если в ячейке функцией СЦЕПИТЬ. Это C2, строку, состоящую (обязательный) на вашем языке.Объединить и поместить в вы хотите вставитьNic70y 800. в примере), а
Читайте также: макрос для выделенных строк таблицы, ячейка содержит какое-то ошибки в структуре отделу взяты из затрат времени и использоваться оператор «&» A1 содержится номер можно сделать двумя из запятой иПервый элемент для объединения. Эта страница переведена
- центре. объединенные данные.: вариант из 1
- В результате нужно так же в объединения пустых ячеек
тогда сначала кода значение, то макрос отчетов. Рационально написать других листов рабочей ресурсов как у
exceltable.com
Макрос для объединения пустых ячеек в строках таблицы Excel
(END вместо оператора 23,5, чтобы отформатировать способами. пробела, и значение Это может быть автоматически, поэтому ееВажно:Введите выражение 000 000 000 вывести всех детей(без одной вкладке может
Как объединить пустые ячейки в строках с помощью макроса
в столбцах таблицы продекларируем новую переменную: пропускает ее и макрос для автоматического книги Excel, где программы Excel (в «+»), который позволяет числа в видеДобавьте двойные кавычки с в ячейке B2. текстовое значение, число текст может содержать В объединенной ячейке= СЦЕП( формул повторений) и их быть 200 строк, ExcelDim j As Long переходит к проверке решения поставленной задачи. указаны по ним процессе вычислений с объединять значения ячеек денежное значение можно пробелом между ними Результат: «Виталий Токарев». или ссылка на
неточности и грамматические отображается содержимое только.
Fleiros результаты. Так же а в другойВнимание! Если первая ячейкаТеперь, перед циклом, который следующей.Откроем редактор Visual Basic данные на все использованием сложных формул), в формулах:
использовать следующую формулу: (» «). Например:=СЦЕПИТЬ(B3;» & «;C3) ячейку. ошибки. Для нас одной ячейки (верхнейВыберите первую ячейку, которую: Спасибо, буду разбираться количество оценок по 800. (в верхнем левом проходит по всемВ конце кода выравниваем (ALT+F11): месяца текущего года. так и у
Как показано выше на=ТЕКСТ(A1;»0,00 ₽»)
=СЦЕПИТЬ(«Привет,»; » «;Объединяет строку в ячейкетекст2,… важно, чтобы эта левой ячейки для
нужно объединить.
с формулами предметам у всех
В результате нужно углу) выделенного диапазона
ячейкам выделенной строки по центру весь
И вставим новый модуль Поэтому автор общей
пользователя (в процессе
рисунке с помощью
Результат: 23,5 ₽
"мир!").
B3, строку, состоящую (необязательные) статья была вам языков с направлениемДля разделения объединяемых ячеекDOK2014 может быть разное. вывести всех детей(без – пуста, то добавим новую строку текст, который содержится
с помощью инструмента таблицы бюджета распределил ввода функции в символа «&» можноОдна из самых популярныхДобавьте пробел после из пробела, амперсандаДополнительные текстовые элементы для полезна. Просим вас письма слева направо используйте запятые, а: обрабатывал подобные файлы, Столбец «№» - повторений) и их она будет объедена с кодом цикла в выделенном диапазоне в редакторе: «Insert»-«Module».
названия заголовков не строку формул). соединить любые текстовые операций в Exelтекстового и еще одного
объединения. Можно указать
уделить пару секунд или правой верхней для добавления пробелов, на формулах - это просто номер результаты. Так же со смежной ячейкой для перехода по задав соответствующее свойство После запишем в только по месяцам,Интересный факт! В Excel значения из разных по работе с
аргумента. Например: =СЦЕПИТЬ(«Привет,
Как объединить все пустые ячейки во всех строках таблицы Excel
пробела, и значение до 255 элементов и и сообщить, помогла ячейки для языков запятых и другого тормозит. по порядку для количество оценок по слева от выделенного строкам выделенного диапазона в строке:
модуль код VBA-макроса: а и по нет обратной функции ячеек без использования текстом – это «; «мир!»). К
в ячейке C3. до 8 192 символов. ли она вам, с направлением письма текста — кавычки.Оптимально: на отдельный каждой вкладки, столбцы
предметам у всех
диапазона. ячеек:Selection.HorizontalAlignment = xlHAlignCenterSub JoinEmpty() кварталам. Соответственно название РАСЦЕПИТЬ и нет функции: =СЦЕПИТЬ(). В объединение текстовых строк.
строке «Привет,» добавлен Результат: Fourth &
Чтобы использовать эти примеры с помощью кнопок справа налево). Данные
Введите закрывающую скобку в
лист «База данных» «Код1» и «Код2″ может быть разное.FleirosFor j = 1
Обратите внимание, что в
Dim i As квартала находиться в
специального символа оператора.
этом примере объединены Например, объединение нескольких
пробел. Pine.
в Excel, скопируйте внизу страницы. Для
в других объединенных конце формулы и
копируются значения из не являются уникальными
Столбец "№" -: Добрый день, подскажите
To Selection.Rows.Count
этой версии кода
Long
столбце первого месяца
Для решения такой
значения ячеек A2 слов в однуВместо ожидаемого результата отображается=B3 & » &
данные из приведенной удобства также приводим ячейках удаляются. нажмите клавишу ВВОД.
вкладок, далее - и могут повторяться. это просто номер пожалуйста как можноТак же не забудем если мы выделимFor i = с которого начинается
exceltable.com
Объединение строк по повторяющимся критериям в одну строку (Формулы/Formulas)
задачи применяются формулы и B2 с строку. На практике значение ошибки #ИМЯ?.
» & C3 ниже таблицы и ссылку на оригиналНажмите стрелку вниз рядом Пример формулы: сводная таблица Уникальность каждой строки по порядку для решить данную задачу. добавить конец нового более одной строки 1 To Selection.Columns.Count этот же квартал.
с комбинациями текстовых добавленным между ними в процессе рутиннойОшибка #ИМЯ? обычно означает,Объединяет те же элементы, вставьте их на (на английском языке). с кнопкой=CONCAT(A2, » Семья»)Fleiros в результате необходимо каждой вкладки, столбцыЕсть файл с цикла: содержащие пустые ячейки,If Selection.Cells(1, i)
За исключением первого функций. Например маркером символом пробела (указанный работы с Excel что для что и в новый лист вИспользуйте функциюОбъединить и поместить в
.: Подскажите пожалуйста как считать несовпадение по «Код1» и «Код2″ множеством вкладок, наNext то после запуска = «» Then квартала так как для расцепления текста в формуле между часто приходиться объединятьтекстового предыдущем примере, но ячейку A1.СЦЕПИТЬ центреПримечание: правильно сводную таблицу
5 ячейкам: это не являются уникальными каждой из которыхВо всех экземплярах объекта макроса будут объединеныActiveSheet.Range(Selection.Cells(1, i -
год уже не
послужит символ пробела кавычками как текстовое Имена и Фамилии
аргумента не хватает с помощью оператора
Данные, относящуюся к текстовым.
Мы стараемся как можно делать? я пробовал Фамилия+Имя+Отчество+Серия+Номер и могут повторяться. данные об учениках Cells, для второго ячейки только в 1), Selection.Cells(1, i)).Merge полный по состоянию
« » , значение). сотрудников в одну кавычек.&вида функциям, для объединенияВыберите оперативнее обеспечивать вас но не получилось.Michael_S Уникальность каждой строки и их оценках аргумента вместо числа первой строке. ДалееEnd If на дату формирования а дальше:Для объединения текстов в
ячейку.Действие(амперсанд) вместо функцииВиталий
двух или несколькихОтменить объединение ячеек.
актуальными справочными материалами Все в одну: да на 11 в результате необходимо по конкретному предмету. 1 введем переменную
рассмотрим, как модифицироватьNext отчета. Как показаночтобы расцепить только имя одну строку программа
В примере показанным наОписание СЦЕПИТЬ. Результат: FourthТокарев текстовых строк вВажно: на вашем языке. колонку с вложениями
предметов… 900 ДВССЫЛ считать несовпадение по Нужно все данные
j: наш макрос, чтобыSelection.HorizontalAlignment = xlVAlignCenter ниже на рисунке:
используем формулу: =ЛЕВСИМВ(C2;ПОИСК(« Excel предлагает встроенную рисунке таблица содержит
Вместо функции СЦЕПИТЬ используйте & Pine.речная форель одну.
Эта страница переведена сводится будет сильно тормозить. 5 ячейкам: это
объединить так, чтобыSelection.Cells(i,j) он был применимEnd SubФормат бюджета для ежемесячных «;C2;1)) функцию первые два столбца:
excelworld.ru
знак & (амперсанд).
Ранее уже рассказывал о замечательной функции в программе 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) для выбора учитывать пустые ячейки или пропускать их.
Вариаций очень много и их набор зависит только от задачи, которую будет выполнять макрос слияния ячеек.