Skip to content
В этом совете вы найдете 4 совета для удаления символа переноса строки из ячеек Excel. Вы также узнаете, как заменять разрывы строк другими символами. Все решения работают с Excel 2019, 2016, 2013 и более ранними версиями.
Перенос строки в вашем тексте внутри ячейки Excel может возникнуть разными способами. Обычно он появляется, когда вы копируете текст с веб-страницы или из Word, получаете файл, который уже содержит разрывы строк, от коллеги или клиента. Или вы добавляете его самостоятельно, используя комбинацию Alt + Enter
.
В любом случае, вы можете решить убрать перенос строки из ваших ячеек, поскольку он не позволяет найти нужную фразу или же заставляет содержимое столбца выглядеть неаккуратно, когда вы включаете опцию переноса текста. Если вы решите загрузить ваши данные в файл .csv для использования в других программах, то в итоге у вас одна ячейка с переносами строк превратится в несколько. Конечно, это нарушит структуру ваших данных.
Все эти 4 способа, которые мы вам предлагаем, действительно быстрые. Выберите тот, который вам больше всего подходит:
- Как убрать перенос строки при помощи «Найти и заменить».
- 3 формулы, чтобы удалить переносы строк в ячейках.
- Как можно использовать макрос VBA.
- Удаляем перенос строки с помощью надстройки Ultimate Suite
Примечание. Первоначально термины «возврат каретки» и «перевод строки» использовались в пишущей машинке и означали два различных действия.
Компьютеры и программное обеспечение для обработки текстов создавались с учетом специфики пишущей машинки. Вот почему теперь для обозначения переноса строки используются два разных непечатаемых символа: «Возврат каретки» (CR, код ASCII 13) и «Перевод строки» (LF, код ASCII 10).
Имейте в виду, что в Excel вы можете найти оба варианта. Если вы импортируете данные из файла .txt или .csv, вы с большей вероятностью найдете комбинацию возврат каретки + перевод строки. Когда вы разбиваете текст в ячейке, используя Alt + Enter
, то Excel вставляет только перевод строки. Если вы получите файлы .csv от человека, который использует Linux или Unix, то там также найдете только перевод строки.
Удаление вручную.
Плюсы: самый быстрый способ.
Минусы: никаких дополнительных возможностей.
Итак, воспользуемся помощью стандартной функции «Найти и заменить»:
- Выделите все позиции, которые вы хотите обработать.
- Нажмите
Ctrl + H
, чтобы открыть диалоговое окно «Найти и заменить». - В поле » Найти» введите
Ctrl + J
. Оно будет выглядеть пустым, но вы увидите крошечную точку. - В поле «Заменить на» введите любое значение для замены. Обычно это пробел, чтобы избежать случайного «слипания» двух слов. Если вам нужно просто удалить разрывы строк, оставьте поле пустым.
- Нажимаем кнопку «Заменить все» и наслаждаемся результатом!
Удалите разрывы строк с помощью формул Excel.
Плюсы: вы можете использовать вложенные формулы для более сложной обработки текста в ячейках. Например, можно удалить символы перевода строки, а затем удалить лишние начальные и конечные пробелы, а также пробелы между словами.
Или вам может потребоваться удалить перевод строки, чтобы использовать ваш текст в качестве аргумента другой функции без изменения исходных ячеек. Например, если вы хотите использовать результат в качестве аргумента функции ВПР.
Минусы: вам нужно создать вспомогательный столбец и выполнить некоторое количество дополнительных действий.
- Добавьте вспомогательный столбец в конец ваших данных. Вы можете назвать его «В одну строку».
- В первой его позиции (C2) введите формулу для удаления или замены переносов строк. Здесь мы представим вам несколько полезных формул для разных случаев:
Удаление возврата каретки и перевода строки как в Windows, так и в UNIX.
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;СИМВОЛ(13);»»);СИМВОЛ(10);»»)
Заменяем перенос строки любым другим символом (например, запятая + пробел). В этом случае строки не будут «слипаться» и лишние пробелы не появятся.
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A3;СИМВОЛ(13);», «);СИМВОЛ(10);», «))
Или же можно обойтись и без запятой, просто заменив пробелом:
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A3;СИМВОЛ(13);» «);СИМВОЛ(10);» «))
Если вы хотите удалить из текста все непечатаемые символы, включая в том числе и переносы строк:
=ПЕЧСИМВ(A4)
Как видите, не всегда результат выглядит красиво и аккуратно. В зависимости от исходных данных выбирайте наиболее подходящий для вас вариант.
При желании вы можете заменить исходный столбец на тот, в котором были удалены переносы строк:
- Выделите все данные в столбце В и нажмите
Ctrl + C
, чтобы скопировать данные в буфер обмена. - Теперь выберите А2 и нажмите
Shift + F10 + V
. - Удалите вспомогательный столбец В.
Макрос VBA для замены переноса строки на пробел.
Плюсы: создав один раз, макрос можно повторно использовать в любой книге, поместив его в персональную книгу макросов.
Минусы: желательно иметь базовые знания VBA. Или воспользуйтесь нашей подробной инструкцией.
Макрос VBA из приведенного ниже примера заменяет на пробел символ возврата каретки из всех ячеек на текущем активном листе.
Sub RemoveCarriageReturns()
Dim MyRange As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each MyRange In ActiveSheet.UsedRange
If 0 < InStr(MyRange, Chr(10)) Then
MyRange = Replace(MyRange, Chr(10), » «)
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Если вы не очень хорошо знаете VBA, просто следуйте рекомендациям ниже:
- Нажмите
Alt + F11
, чтобы открыть редактор Visual Basic. - Щелкните правой кнопкой мыши имя книги на панели «Project — VBAProject » (в верхнем левом углу окна редактора) и выберите «Вставить» -> «Модуль» в контекстном меню.
- Скопируйте код VBA и вставьте его в правую панель редактора VBA ( окно « Module1 »).
- Сохраните книгу как «книгу Excel с поддержкой макросов».
НажмитеCrl + S
, затем нажмите кнопку «Нет» в диалоговом окне предупреждения «Следующие функции не могут быть сохранены в книге без макросов». - Откроется диалоговое окно «Сохранить как». Выберите «Книга Excel с поддержкой макросов» из раскрывающегося списка «Тип файла». Нажмите кнопку «Сохранить».
- Нажмите
Alt + Q
, чтобы закрыть окно редактора и вернуться к своей книге. - Если вы хотите запустить код VBA, который вы добавили, как описано в разделе выше: нажмите
Alt + F8
, чтобы открыть диалог «Макросы». - Затем выберите нужный макрос из списка «Имя макроса» и нажмите кнопку «Выполнить».
Но если какая-либо формула возвращает возврат каретки, я боюсь, что с этим ничего нельзя поделать. Макрос не может найти, где именно в формуле происходит возврат каретки, поэтому он обрабатывает результат формулы, а не формулу как таковую.
Удаляем перенос строки с помощью надстройки Ultimate Suite.
Если вы являетесь пользователем Ultimate Suite for Excel , то вам не нужно тратить время на какие-либо из вышеперечисленных манипуляций. Все, что требуется, — это 3 быстрых шага:
- Выберите одну или несколько ячеек, в которых вы хотите удалить переносы строк.
- На ленте Excel перейдите на вкладку Ablebits Data и нажмите кнопку «Преобразовать (Convert)» .
- На панели «Преобразовать текст» выберите переключатель «Конвертировать перенос строки в (Convert line break to)», введите в поле «заменяющий» символ (это может быть точка с запятой, точка, запятая, пробел) и нажмите кнопку «Преобразовать (Convert)» .
В нашем примере мы заменяем каждый перенос строки пробелом:
В результате у вас будет аккуратно организованная таблица с однострочными адресами, как это изображено на рисунке выше. Такой же результат мы получали выше и при помощи формул, но занимало это гораздо больше времени.
Это далеко не единственный инструмент для упрощения работы с текстом. Вы можете удалить лишние пробелы, изменить регистр символов, добавить текст в начале в конце, перед или после выбранных символов, удалить непечатаемые символы, извлечь часть текста по позиции или после указанных символов, извлечь числа из текста, разделить текст по столбцам или строкам и многое другое. Подробнее вы можете ознакомиться с этими возможностями на страничке обзора инструментов работы с текстом.
Если вам интересно попробовать этот и еще 60 инструментов для экономии времени для Excel, вы можете загрузить пробную версию Ultimate Suite . Вы будете приятно удивлены, когда найдете решения для самых сложных и утомительных задач в Excel всего в несколько кликов!
Итак, теперь вы легко можете убрать либо заменить символ переноса строки в вашей таблице Excel.
Ещё о работе с текстом в Excel:
skais675 Пользователь Сообщений: 2177 |
Есть данные в приложенном примере. Нужно удалить все переносы строк. Однако сделать это стандартными методами или с помощью VBA не удалось. Только после нажатия ввода в каждой ячейке, они начинают адекватно удаляться. Собственно вопрос, почему это происходит и как это решить? Прикрепленные файлы
Изменено: skais675 — 17.12.2021 09:32:55 |
МатросНаЗебре Пользователь Сообщений: 5507 |
#2 17.12.2021 09:45:31
|
||
skais675 Пользователь Сообщений: 2177 |
МатросНаЗебре, Сработало, спасибо!!! |
Тимофеев Пользователь Сообщений: 1495 |
#4 17.12.2021 09:51:12
|
||
Msi2102 Пользователь Сообщений: 3134 |
#5 17.12.2021 09:51:50 Может так
|
||
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#6 17.12.2021 10:01:44
Изменено: Jack Famous — 17.12.2021 10:55:45 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
|
Евгений Смирнов Пользователь Сообщений: 539 |
#7 17.12.2021 10:16:22 Может так
|
||
Msi2102 Пользователь Сообщений: 3134 |
|
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
Msi2102,
Мой косяк — на скрине видно, что всё нормально, только цвет не тот. Заменил скрин и файл Изменено: Jack Famous — 17.12.2021 10:56:37 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Msi2102 Пользователь Сообщений: 3134 |
#10 17.12.2021 12:04:03
Блин, а я пол часа пытаюсь понять что не так |
||
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#11 17.12.2021 12:06:52
подписывайтесь на обновления и/или попробуйте один раз и опять сюда с вопросом «а у меня получилось — как так?» Изменено: Jack Famous — 17.12.2021 12:07:44 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
Msi2102 Пользователь Сообщений: 3134 |
#12 17.12.2021 12:37:38 В общем как-то так Прикрепленные файлы
|
First, you need to determine which line break your variable has — or you can test for all of them using multiple replaces. Luckily, VBA has the vbConstants for line breaks which make your life a little easier:
myStr = Replace(myStr, vbCr, " ")
myStr = Replace(myStr, vbLf, " ")
myStr = Replace(myStr, vbCrLf, " ") '// or vbNewLine
Notice I’ve used a space as the replacement otherwise you will end up with words being merged:
Example of some text
with a line break
replacing the line break with a zero length string ""
would result in:
Example of some textwith a line break
whereas replacing with a space " "
will produce:
Example of some text with a line break
Just for fun another way of doing this is like so:
myStr = Join$(Split(myStr, vbCrLf), " ")
This uses the line break as a delimiter to split the string out into a single dimension array, then joins each element of the array with a space. No real advantage in either method just down to preference in this case.
Оформление кода VBA
Смотрите также объекта set WS j).End(xlUp).Row To 2 Is Nothing Then у меня тожеможно ли ее: Private Sub Command2_Click() символы появляются в = «14» Andнапример, что-нибудь в
и склеивания не=ПЕЧСИМВ(B2) чтобы избежать случайного два различных непечатаемыхИсточник: http://www.excelfunctions.net/VBA-Code-Presentation.html вложенного блока кода. переданную процедуре строкуНачиная практиковаться в написании = какой-то лист. Step -1 If Exit Sub Else есть сомнения что разбить на несколько a = MsgBox(«Струйные ячейках склеенных _ Cells(r, c.Column).Value духе : равны друг другу=CLEAN(B2) склеивания двух соседних символа:Перевел: Антон Андронов
Такие увеличенные отступы Sub Find_String(sFindText As кода VBA, оченьЛибо активировать НУЖНЫЙЛИСТ.ACTIVATE aws.Cells(i, j) <> j = x.Column
Комментарии в VBA
это оптимальный вариант. строчек? принтеры печатают текстSerge_007 = «15» _rn — выходим сСкопируйте формулу во все слов. Если нужноВозврат кареткиАвтор: Антон Андронов
помогают понять, где String) Dim i важно с самого , потом Rows.delete «» Then On Application.ScreenUpdating = False: Я создам отдельнуюСпасибо! и изображения, разбрызгивая: А если попробовать, Then Rows(r).Delete; ошибкой If SearchRange.Count ячейки столбца. просто удалить переносы(Carriage return, CR
Эта инструкция познакомит Вас каждый отдельный блок As Integer ‘ начала выработать хорошие и потом снова
Error Resume Next: Set aws = тему с вопросомSergei_A на бумагу мелкие прежде чем писать?KucherovSanja <> TextRange.Count ThenПо желанию, можете заменить строк, оставьте поле или ASCII код с тремя способами кода начинается и переменная типа Integer привычки в оформлении перейти на лист Set ws = Sheets(«Общая база») For по поводу того: да, можно. Пробел+ капли чернил.» &200?’200px’:»+(this.scrollHeight+5)+’px’);»>Const sDELIM As String: Спасибо, извините, тупанул,: Kuzmich, же Вам MergeIf = CVErr(xlErrRef) исходный столбец новым,Заменить на 13) и удалить возвраты каретки заканчивается. для цикла ‘For’ кода, чтобы в AWS и далее ThisWorkbook.Sheets(CStr(aws.Cells(i, j))) If i = aws.Cells(Rows.Count, как правильно записывать _ vbLf & _ = vbLf не поставил пробел показал Exit Function End с удалёнными переносами(Replace With) пустым.Перевод строки из ячеек вЕщё один способ сделать
Dim iRowNumber As дальнейшем написанный код цикл Err <> 0 j).End(xlUp).Row To 2 такого рода формулыOSA913 «Струйные принтеры популярныАндрей перед «_»Юрий М
If ‘проходим по строк:Нажмите кнопку(Line feed, LF Excel. Вы также код более читаемым Integer ‘ переменная было легко читатьLofak Then Set ws
Отступы в коде VBA
Step -1 If и буду благодарен: Подскажите как перенести из-за относительно невысокой: СПАСИБО! Очень помогли!Hugo: excel_pl, Вы не все ячейкам, проверяемВыделите все ячейки вЗаменить все или ASCII код узнаете, как заменить и облегчить работу типа Integer для и понимать, как, либо вычистите = Sheets.Add: ActiveSheet.Name
Переносы строк в VBA
aws.Cells(i, j) <> вам за помощь. на новую строку цены.» & vbLftarakano: Эту кучу AND отписались в своих условие и собираем столбце(Replace All) и 10). В Windows символы переноса строки с ним – хранения результата iRowNumber он работает.все = aws.Cells(i, j):
«» Then Onbosscs часть формулы, которую & _ «Существует: подскажите пожалуйста, что оптимальнее разбить на
старых темах, а текст в переменнуюC
наслаждайтесь результатом! используются оба символа другими символами. Все делать переносы и = 0 ‘В процессе написания кода,листы до того On Error GoTo Error Resume Next:: Приветствую. вставляю в массив
множество моделей таких нужно дописывать в цепочку вложенных ЕСЛИ-ТО уже создали новую. OutText For i
и нажатиемПлюсы: вместе, а в предложенные решения работают разбивать одну длинную последовательно посматриваем ячейки программист может иметь как переносить данные 0 aws.Cells.Copy ws.rows.delete Set ws =Допустим есть в vba? Пробелом и
принтеров, включая модели, конце строки, если — может когда-нибудь Или ответы не = 1 ToCtrl+CДоступно использование последовательных системах *NIX применяется в Excel 2013, строку кода на A1-A100, пока не совершенно чёткое представление из основной базы ws.Cells.PasteSpecial Paste:=xlPasteColumnWidths ws.Cells.PasteSpecial
ThisWorkbook.Sheets(CStr(aws.Cells(i, j))) If проекте визуала длинная
_ не переносится.
специально предназначенные для
текс длинный и
office-guru.ru
Как удалить переносы строк (возвраты каретки) из ячеек в Excel 2013, 2010 и 2007
сэкономите даже пару интересуют? SearchRange.Cells.Count If SearchRange.Cells(i)скопируйте данные в или вложенных формул только перевод строки. 2010, 2007 и несколько коротких. В будет найдено значение о том, чтоДобавлено через 5 минут Paste:=xlPasteFormats End If
Err <> 0 строчка, как ееАлександр П. печати цветных фотографий.» не помещается в минут работы кода…excel_pl Like Condition Then буфер обмена. для сложной проверкиБудьте внимательны: 2003. VBA, чтобы разбить ‘sFindText’ For i за код он
например так aws.Rows(i).Copy ws.Cells(Rows.Count, 1).End(xlUp).Offset(1) Then Set ws записать в 2: На примере из & vbLf & одной строке? кто знает что: Вопрос решён. OutText = OutTextДалее выделите ячейку
текста в обрабатываемойВ Excel встречаютсяПереносы строк могут появиться строку, нужно вставить
- = 1 To пишет и какSub ClearPages() For End If: Next
- = Sheets.Add: ActiveSheet.Name строки? макрорекордера ActiveWorkbook.Worksheets(«NNN.FFF»).Sort.SortFields.Add Key:=Range(«A1:A6») _ «Недостатки. Вчто б было
- там будет вВсем спасибо. & TextRange.Cells(i) &B2
ячейке. Например, можно оба варианта. При в тексте по символы » _» 100 If Cells(i, этот код должен i = 1 End Sub = aws.Cells(i, j):Alex77755 _ , SortOn:=xlSortOnValues,
большинстве случаев струйные понятнее: Private Sub другой раз.Kucherov Delimeter Next i, нажмите сочетание клавиш удалить возвраты каретки, импорте из файлов разным причинам. Обычно (пробел+подчёркивание) непосредственно перед 1).Value = sFindText работать. Но нужно To Sheets.Count SetLofak On Error GoTo: В нужном месте: Order:=xlAscending, DataOption:=xlSortNormalТо есть, принтеры работают медленнее Command2_Click() a =JayBhagavan: Добрый день!
‘выводим результаты безShift+F10 а затем найти.txt возвраты каретки встречаются переносом строки. Это Then ‘ найдено позаботиться и о ws = Sheets(i): Что-то все равно 0 aws.Cells.Copy ws.Cells.PasteSpecial Пробел, Подчёркивание(«_»), Ентер после нужного символа (в страницах в MsgBox(«Г‘òðóéГ*ûå ïðèГ*òåðû ГЇГҐГ·Г*ГІГ*ГѕГІ: Пробел, нижнее подчёркивание,Как можно перенести последнего разделителя MergeIfи выберите лишние начальные илиили в рабочей книге, сообщает компилятору VBA,
Удаляем возвраты каретки вручную
совпадение с переданной том, чтобы, вернувшись If ws.Name <>
не так, не Paste:=xlPasteColumnWidths ws.Cells.PasteSpecial Paste:=xlPasteFormats
gaw ставите пробел? затем минуту), чем лазерные ГІГҐГЄГ±ГІ ГЁ èçîáðГ*æåГ*ГЁГї, энтер.
- строки в Макросе? = Left(OutText, Len(OutText)Вставить конечные пробелы, или.csv
- например, когда текст что текущая строка строкой ‘ сохраняем к работе спустя «Общая база» Then чистит
- End If aws.Rows(i).Copy: (наверное неправильно понял «_» и затем принтеры, и требуют Г°Г*çáðûçãèâГ*Гї Г*Г* ГЎГіГ¬Г*ГЈГіСимвол переноса в VBA Нажимаю пробел - — Len(Delimeter)) End(Insert). лишние пробелы междуданные обычно содержат
- скопирован с веб-страницы, кода продолжается на номер текущей строки полгода, не пришлось ws.Rows.Delete Next EndBurk ws.Cells(Rows.Count, 1).End(xlUp).Offset(1) End ) enter регулярной замены картриджа ìåëêèå ГЄГ*ïëè Г·ГҐГ°Г*ГЁГ«.: Помогите пожалуйста! выдаёт ошибку. Очень Function
- Удалите вспомогательный столбец. словами. возвраты каретки и когда они уже
Удаляем переносы строк при помощи формул Excel
следующей строке. и выходим из ломать голову, пытаясь Sub: If: Next End»a» & vbCrLfМихаил Лебедев с чернилами», , ÑòðóéГ*ûå ïðèГ*òåðû ïîïóëÿðГ*û интернете есть неудобно.
Сцепка происходит поПлюсы:В некоторых случаях переносы переводы строки. Когда есть в рабочейСледующий пример демонстрирует, как цикла iRowNumber = понять, что долженLofakНу и его надо Sub & «b»
: activecell.formulaR1C1 = «=if(vlookup… «Справка») End Sub ГЁГ§-Г§Г* îòГ*îñèòåëüГ*Г® Г*åâûñîêîé такой макрос:
- Мне желательно в принципу:Создаём один раз строк необходимо удалять, перенос строки вводится книге, полученной от
- при помощи переносов i Exit For делать этот код.: Благодарю вас, то поставить до циклаМожет кто нибудь»a» & vbNewLine
- первая часть отtarakano öåГ*Г». Ñóùåñòâóåò Г¬Г*îæåñòâî200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub MergeToOneCell() данной программе перенестиТекст 1, Текст
– используем снова
чтобы в дальнейшем
- вручную нажатием клиента, или, когда строк можно сделать End If Next Ещё более неприятная что нужно! по I помочь добавить функцию & «b» очень много всего»
: спасибо за оба
ìîäåëåé ГІГ*ГЄГЁГµ ïðèГ*òåðîâ,
- Const sDELIM As строки, где задаются 2 и снова с
использовать текст в
Alt+Enter
- первая часть отtarakano öåГ*Г». Ñóùåñòâóåò Г¬Г*îæåñòâî200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub MergeToOneCell() данной программе перенестиТекст 1, Текст
- мы сами добавляем длинные строки кода
- i ‘ сообщение ситуация – когдаBurkА на то,
- очистки дополнительных листов»a» & Chr(13) _ & « способа, теперь буду âêëþ÷Г*Гї ìîäåëè, ñïåöèГ*ëüГ*Г® String = « данные (вторая строка)
- Вопрос любой рабочей книгой. качестве аргументов функций,, Excel вставляет только их нажатием клавиш гораздо более понятными во всплывающем окне
- кто-то другой станет
Удаляем переносы строк при помощи макроса VBA
: что вам пишут перед копированием туда + Chr(10) & вторая часть от
знать ïðåäГ*Г*Г§Г*Г*Г·ГҐГ*Г*ûå äëÿ ГЇГҐГ·Г*ГІГЁ » ‘символ-разделитель
и переносить строки,Как сделать чтобыМинусы: не внося изменения символ перевода строки.
Alt+Enter и легко читаемыми. сообщает пользователю, ‘ продолжать Вашу работуLofak вы внимания не информации из первого «b» очень много всего»Тогда еще один: öâåòГ*ûõ ôîòîãðГ*ГґГЁГ©. ÍåäîñòГ*ГІГЄГЁ.Dim rCell As где If, там
разделитель был неТребуется хотя бы в исходные ячейки. Если же файл.Посмотрите на этот оператор найдена ли строка,
над кодом и, просто хотелось, чтобы
обращаете??? А цикл
листа, что бы
Lofak
office-guru.ru
Как сделать перенос строки с использованием VBA?
_ & «Private Sub Command2_Click() Г‚ áîëüøèГ*Г±ГІГўГҐ ñëó÷Г*ГҐГў Range стоит AND и «, «, а базовое знание VBA. Результат можно использовать,.csvКакой бы ни былаIf и если найдена не сможет понять, вы, учитывая подсказки, по по строкам информация не дублировалась: Доброго времени суток, третья часть от Dim St as ñòðóéГ*ûå ïðèГ*òåðû Г°Г*áîòГ*ГѕГІDim sMergeStr As у м меня перенос текста наМакрос VBA из следующего например, как аргументполучен от поклонника причина их появления,: – сообщает номер как он работает. сами это сделали, у вас в при каждом последующем имеется таблица exel очень много всего» String St = ìåäëåГ*Г*ГҐГҐ (Гў Г±ГІГ°Г*Г*ГЁГ¶Г*Гµ String
будет много «AND» следующую строчку?
примера удаляет возвраты функции
Linux, Unix или
сейчас перед намиIf (index = строки If iRowNumberЭта статья посвящена комментариям, но, видимо, рано
строке 6 запуске?
в которую вносятся
OSA913
«Струйные принтеры печатают Гў ìèГ*ГіГІГі), Г·ГҐГ¬If TypeName(Selection) <> и много «OR»Т.е., чтобы сцепка каретки из всехПРОСМОТР другой подобной системы, стоит задача удалить 1 And sColor1 = 0 Then отступам в кодеLofakLofakBurk данные, с некоторыми: Покажите пожалуйста в текст и изображения, Г«Г*çåðГ*ûå ïðèГ*òåðû, ГЁ «Range» Then Exit и хотел бы происходила по принципу: ячеек на активном(LOOKUP). то готовьтесь к возвраты каретки, так = «красный») Or
MsgBox «Строка « и переносам строк: Скорее уже поздно,, под ЕГО имеется: Rows.Delete дополнительными параметрами, нужно
моем примере(модуль1). Заранее разбрызгивая на бумагу òðåáóþò ðåãóëÿðГ*îé Г§Г*ìåГ*Г» Sub ‘если выделены каждое условие вТекст 1
листе.Минусы: встрече только с как они мешают
(index = 2 & sFindText & – элементам, которые
когда-то учился, но ввиду оператор чистки,Lofak что бы данные спасибо! мелкие» & vbNewLine ГЄГ*ðòðèäæГ* Г± Г·ГҐГ°Г*ГЁГ«Г*ìè»,
не ячейки - отдельную строку записывать,
Текст 2
planetaexcel.ru
Перенос строки в коде. Макросы
Sub RemoveCarriageReturns() DimПотребуется создать вспомогательный
символом перевода строки. выполнять поиск фраз And sColor1 = » не найдена» делают код аккуратным
так толком и а вы засунули: Добавить новую строку? копировались на другиеМихаил Лебедев St = St ,»Г‘ГЇГ°Г*ГўГЄГ*») End Subтекс выходим а не вSanja MyRange As Range столбец и выполнитьПлюсы: и приводят к «синий») Or (index Else MsgBox «Строка и понятным. не освоил программирование, его внутрь циклаEnd If aws.Rows(i).Delete листы в зависимости: В Вашем примере + » капли в msgbox длинныйWith Selection одну длинную. Public: Function MergeIf(TextRange As Application.ScreenUpdating = False множество дополнительных шагов.Этот способ самый беспорядку в столбце = 3 And » & sFindTextСамое важное для написания да и долгое ????? ws.Cells(Rows.Count, 1).End(xlUp).Offset(1) End от категории, например — абсурдное выражение чернил. Струйные принтеры и не помещаетсяFor Each rCell
Sub Delete_Privetik() Dim Range, SearchRange As Application.Calculation = xlCalculationManual
Добавьте вспомогательный столбец в быстрый. при включении режима sColor1 = «зеленый») & » найдена
аккуратного и понятного время занимался другимLofak If aws.Rows(i).Copy ws.Cells(Rows.Count, вносим мы в написано. И оно
популярны из-за относительно в одну строку, In .Cells b As Range,
Range, Condition As For Each MyRange конце данных. ВМинусы: переноса текста. Or (index = в ячейке A» кода – чаще делом, сейчас периодически: К сожалению не
1).End(xlUp).Offset(1) End If: таблицу тетрациклин, в не соответствует тому
planetaexcel.ru
Символ переноса в VBA
невысокой цены. Существует как разделить его
sMergeStr = sMergeStr c As Range,
String) Dim i
In ActiveSheet.UsedRange If нашем примере онНикаких дополнительных плюшек
Все три представленных способа 4 And sColor1
& iRowNumber End оставлять комментарии. Комментарии
возникает такая необходимость, пойму, перед? Next разделе категория указываем вопросу, который Вы
" & vbNewLine
на 2 - & sDELIM &
d As Range, As Long 'если 0 < InStr(MyRange, будет называться
Вот так можно удалить
довольно быстры. Выбирайте = "коричневый") Then If End Sub
– это строки пытаюсь что-то вспоминать,
For i =
Burk что он антибиотик, задаете. St = St
3 строки?
rCell.Text 'собираем текст
LastRow As Long, диапазоны проверки и Chr(10)) Then MyRange
1 line переносы строк при тот, который Вам
При помощи переносов строкНе расстраивайтесь, если какую-то
в коде, которые а что-то осваивать aws.Cells(Rows.Count, j): следовательно вся строкаactivecell.formulaR1C1 = «=if(vlookup…
+ «множество моделейgaw из ячеек r As Long склеивания не равны = Replace(MyRange, Chr(10),
. помощи инструмента « больше подходит:
тот же оператор часть кода, показанного
исполняют роль заметок заново. В любом
excelworld.ru
Перенос длинных строк в редакторе кода
BurkLofak переносится на лист очень много всего» таких принтеров, включая: Private Sub Command2_Click()Next rCell
On Error Resume друг другу - «») End IfВ первой ячейке вспомогательногоНайти и заменитьУдаляем все переносы строкIf выше, не удалось и помогают разобраться, случае вам огромное:, ну, конечно, перед 2, в антибиотики. — речь идет модели, специально предназначенные a = MsgBox(«СтруйныеApplication.DisplayAlerts = False Next Set b выходим с ошибкой Next Application.ScreenUpdating = столбца (C2) введите»: вручную, чтобы быстроможет быть записан понять – далее какие действия выполняет спасибо за помощь!Lofak
копированием поставить чистку. Вносим витамин, переносится о СТРОКОВОМ ВЫРАЖЕНИИ, » & vbNewLine принтеры печатают текст ‘отключаем стандартное предупреждение = Range(«g2:g2500»).Cells Set If SearchRange.Count <> True Application.Calculation = формулу для удаления/заменыВыделите все ячейки, в навести порядок на вот так: в учебнике мы та или инаяBurk, НУ ЭТО УЖ Только надо активировать на лист 3 которое записывается в St = St и изображения, разбрызгивая о потере текста c = Range(«bi2:bi2500»).Cells TextRange.Count Then MergeIf xlCalculationAutomatic End Sub переносов строк. Ниже которых требуется удалить одном листе.If (index = рассмотрим эту тему
часть кода.: КУ-КУ. Перед это страницу , на витамины. активную ячейку. + «для печати на бумагу мелкие».Merge Across:=False ‘объединяем On Error GoTo = CVErr(xlErrRef) ExitЕсли Вы не слишком приведены несколько полезных возвраты каретки илиУдаляем переносы строк при 1 And sColor1 подробнее. Цель приведённогоКомментарии не участвуют вLofak не внутрь строки которую пойдёт запись,LofakСтроковое — т.к. цветных фотографий.» & & vbNewLine & ячейки
0 If b Function End If близко знакомы с формул для различных
заменить их другим
помощи формул и = «красный») Or примера – продемонстрировать, процессе выполнения программы, понял, обращайтесь. кода, а перед либо проще ws.rows.delete: Пример таблицы во заключено в кавычки. vbNewLine & vbNewLine _ » каплиApplication.DisplayAlerts = True Is Nothing Then For i = VBA, рекомендую изучить случаев: символом. настраиваем таким образом _ (index = как при помощи и не влияютНовичек ней. Как мне ведь ws у вложенияхА в Вашем St = St чернил. Струйные принтеры.Item(1).Value = Mid(sMergeStr, Exit Sub Else 1 To SearchRange.Cells.Count статью о том,Эта формула подходит дляНажмите комплексную обработку текстовых 2 And sColor1
CyberForum.ru
Перенос формулы в VBA на новую строку
комментариев поясняется каждый на результат работы
: MsgBox «Длинное предложение кажется, перенос осуществляется вас лист, в
Прошу по возможности модуле1 Вы пытаетесь
+ «Недостатки. В популярны из-за относительно
1 + Len(sDELIM))
LastRow = b.Rows.Count If SearchRange.Cells(i) Like как вставить и
использования с комбинациями
Ctrl+H данных в ячейках. = «синий») Or
блок кода. макроса. Каждая строка, ……» не AWS а который идет перенос? помочь реализовать присвоить переменной типа
большинстве случаев струйные невысокой цены. Существует ‘добавляем к объед.ячейке LastRow = LastRow Condition Then If выполнить код VBA возврат каретки /, чтобы вызвать диалоговоеИспользуем макрос VBA, чтобы
_ (index =Часто программисты ленятся добавлять начинающаяся апострофом (‘),Подскажите как осуществляется WS Ну и егоunick12345 Variant не распознаваемый принтеры работают медленнее» » & vbNewLine
суммарный текст + b.Row - MergeIf <> Empty в Excel.
перенос строки, характерными окно очистить от переносов 3 And sColor1 подробные комментарии к будет считаться в перенос текста на
WS.rows.delete For i надо поставить до: переносится или копироваться? программой набор символов. & vbNewLine St & _ «множество
End With 1 Application.ScreenUpdating =
Then MergeIf =Урок подготовлен для Вас для Windows иНайти и заменить строк несколько рабочих
= «зеленый») Or своему коду, но, VBA комментарием. Редактор
другую строку? = aws.Cells(Rows.Count, j).End(xlUp).Row цикла по ILofakЯ так подозреваю, = St + моделей таких принтеров,End Sub
False For r MergeIf & TextRange.Cells(i) командой сайта office-guru.ru для UNIX.(Find and Replace). книг. _ (index = поверьте, затраченные усилия VBA в ExcelНовичек To 2 StepLofak: Копироваться в надежде на «(в страницах в включая модели, специальноА как сделать = LastRow To
planetaexcel.ru
Перенос строки
& vbCrLf ElseИсточник: https://www.ablebits.com/office-addins-blog/2013/12/03/remove-carriage-returns-excel/
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2;СИМВОЛ(13);»»);СИМВОЛ(10);»»)Поставьте курсор в полеЗамечание: 4 And sColor1 оправдают себя с
выделит такую строку: MsgBox «Длинное предложение -1
: Вот так?Нашел скрипт, который чудо
минуту), чем лазерные предназначенные » &
чтобы место пробела b.Row Step -1
MergeIf = TextRange.Cells(i)Перевел: Антон Андронов=SUBSTITUTE(SUBSTITUTE(B2,CHAR(13),»»),CHAR(10),»»)
CyberForum.ru
Перенос строк с условием
НайтиПервоначально термины «Возврат = «коричневый») Then избытком! Несколько минут, зелёным цветом шрифта, ……»LofakSub Main() Dim выполняет необходимую мнеЛучше приложите пример, принтеры, и требуют vbNewLine & _ в строке If Cells(r, b.Column).Value & vbCrLf EndАвтор: Антон АндроновСледующая формула подходит для(Find what) и каретки» и «ПереводЕсли рассмотренный оператор
потраченных на написание чтобы с первогоПодскажите как осуществляется
: Да, я так i As Long,
функцию, но при в котором Ваша
регулярной замены картриджа «для печати цветных
Const sDELIM As = «14» And If End Ifexcel_pl замены переноса строки нажмите строки» использовались приIf
понятного комментария, могут взгляда было понятно, перенос текста на и имел ввиду, j As Integer, каждом запуске копирует формула внесена в с чернилами» a фотографий.» & vbNewLine String = « Cells(r, c.Column).Value = Next i End: Код сцепляет столбец любым другим символомCtrl+J работе на печатныхразбит на четыре сэкономить Вам долгие что это комментарий, другую строку? но в таком ws As Worksheet, все строки, в ячейку, так будет = MsgBox(St, vbInformation & vbNewLine & » ‘символ-разделитель «15» Then Rows(r).Delete Function по критериюСкрытый текст (например, «, ». На первый взгляд машинках и обозначали строки, то составляющие
часы в будущем. который не будетЛузер случае выпадает ошибка, aws As Worksheet, том числе те, проще понять, что + vbOKOnly, «Справка») _ «Недостатки. В
вставлялся символ переноса Next r End
Kuzmich Option Compare Text
– запятая + поле покажется пустым, две различных операции. его блоки cДругой приём, делающий написанный
выполняться.: Очевидно по размеру что переменная не x As Range которые уже скопировал это за формула End SubvbCrLf большинстве случаев струйные строки? If: В ячейке включить Function MergeIf(TextRange As пробел). В таком но если посмотрите Любознательный читатель может
условиями видны гораздо код более читаемым
Ниже продемонстрировано, как при окна. задана: Set x = ранее и что онаMaksymromaniuk принтеры работают медленнее»anvgThe_Prist перенос по словам Range, SearchRange As случае строки не внимательно, то увидите самостоятельно найти подробную более наглядно. Этот – правильно расставлять помощи комментариев поясняетсяМожете сами переноситьBurk Rows(1).Find(«Садовник», , ,Sub Main() Dim вычисляет.: Добрый вечер! & vbNewLine &: В Excel для: А что, в Dim OutText As Range, Condition As будут объединены и в нём маленькую информацию об этом пример иллюстрирует, как отступы. В приведённом
работа простой процедуры на другую строку:: xlWhole) If x
i As Long,OSA913Вопрос, конечно, не _ «(в страницах Range можно использовать
Яндексе забанили? String Delimeter = String) Dim Delimeter лишние пробелы не точку. в интернете. аккуратное оформление может
выше примере видно,SubMsgBox «первая строка»Lofak Is Nothing Then j As Integer,
: Так вопрос то жизненно важный, но в минуту), чем
2 типа символа-переносаIf Cells(r, b.Column).Value
Chr(10) As String, i появятся.В полеКомпьютеры и программное обеспечение сделать код более что отступ сделан: & Chr(10) &, я вам написал Exit Sub Else
ws As Worksheet, был не об все-таки. лазерные принтеры, и
строки vbLf и = «14» Andexcel_pl As Long Delimeter=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2;СИМВОЛ(13);»»);СИМВОЛ(10);», «)Заменить на для работы с
читаемым и привести для кода внутри’ процедура Sub «вторая строка» ответ на вопрос j = x.Column aws As Worksheet, этом, а переносеВ VBA прописана требуют регулярной замены vbNewLine
_ Cells(r, c.Column).Value: А каких-нибудь спец. = «, «=TRIM(SUBSTITUTE(SUBSTITUTE(B2,CHAR(13),»»),CHAR(10),», «)(Replace With) введите текстами разрабатывались с
в результате к главной процедуры для просмотра диапазонаНовичек о чистке листа. Application.ScreenUpdating = False:
x As Range
строки. Но спасибо
очень громоздкая формула, картриджа с чернилами»,андрей = «15» Then символов вместо запятой ‘символы-разделители (можно заменитьА вот так можно любое значение для
учётом особенностей печатных меньшему количеству ошибокSub
ячеек A1-A100 активного: Да, помогло. Спасибо. В вашем коде Set aws = Set x = за подсказку, формулаactivecell.formulaR1C1 = «=if(vlookup…
vbInformation + vbOKOnly,: Если vbLf или _ Rows(r).Delete для строчки « на пробел или удалить все непечатаемые вставки вместо возвратов машинок. Вот почему и путаницы.и далее отступ ‘ листа иНовичек до оператора чистки Sheets(«Общая база») For
Rows(1).Find(«Садовник», , , в массиве вроде очень много всего» «Справка») End Sub
CyberForum.ru
Перенос текста в VBA
vbNewLine подставить вSuperCatDelimeter = «, «
; и т.д.) символы из текста, каретки. Обычно для
теперь для обозначенияУрок подготовлен для Вас увеличивается для каждого
поиска ячейки, содержащей: Да, помогло. Спасибо. надо установить значение
i = aws.Cells(Rows.Count, xlWhole) If x правильно вычисляет но
ее неудобно читатьКазанский
макрос. то эти: If Cells(r, b.Column).Value» нету?
‘если диапазоны проверки включая переносы строк:
этого используют пробел, разрыва строки используют
planetaexcel.ru
командой сайта office-guru.ru
У меня есть такая сложность.
Есть колонка с названиями, некоторые из названий используют перенос строки в ячейке (Alt + enter).
Когда я запускаю свой макрос по поиску нужной мне колонки (а он ищет и сравнивает названия), пропускает то что должен был найти именно из-за перенесенной строки.
Я поковырялся, функция Trim не спала естественно, поискал еще, но найти ту которая бы убирала перенос строк не смог.
Может кто сможет подсказать? Спасибо!
У меня есть такая сложность.
Есть колонка с названиями, некоторые из названий используют перенос строки в ячейке (Alt + enter).
Когда я запускаю свой макрос по поиску нужной мне колонки (а он ищет и сравнивает названия), пропускает то что должен был найти именно из-за перенесенной строки.
Я поковырялся, функция Trim не спала естественно, поискал еще, но найти ту которая бы убирала перенос строк не смог.
Может кто сможет подсказать? Спасибо! lopuxi
О_о . и так можно было?
Сообщение Доброго дня.
У меня есть такая сложность.
Есть колонка с названиями, некоторые из названий используют перенос строки в ячейке (Alt + enter).
Когда я запускаю свой макрос по поиску нужной мне колонки (а он ищет и сравнивает названия), пропускает то что должен был найти именно из-за перенесенной строки.
Я поковырялся, функция Trim не спала естественно, поискал еще, но найти ту которая бы убирала перенос строк не смог.
Может кто сможет подсказать? Спасибо! Автор — lopuxi
Дата добавления — 03.06.2015 в 13:02
Источник
Как удалить разрывы строк в Excel (3 простых способа)
Если вы работаете с данными, импортированными из баз данных или отдела продаж, вы, вероятно, уже имели дело с переносами строк.
Разрыв строки — это то, что позволяет вам иметь несколько строк в одной ячейке в Excel.
Ниже приведен пример набора данных имени и адреса, в котором одна строка, имя и различные части адреса разделены разрывом строки.
Хотя в приведенном выше примере это выглядит великолепно, иногда вам могут не понадобиться эти разрывы строк и вам необходимо удалить эти разрывы строк из набора данных.
В этом уроке я покажу вам три простых способа удалить разрывы строк в Excel (также называемый внутрикамерным возврат каретки в Excel).
Удаление разрывов строк с помощью функции поиска и замены
Самый простой способ удалить разрывы строк вручную — использовать «Найти и заменить».
Вы можете легко применить это к большому набору данных, а функция «Найти и заменить» сделает всю тяжелую работу, найдя все разрывы строк и удалив их из ячеек.
Предположим, у вас есть набор данных адресов, как показано ниже, из которого вы хотите удалить разрывы строк.
Ниже приведены инструкции по удалению разрывов строк с помощью функции «Найти и заменить» и замене их запятой:
- Выберите набор данных, из которого вы хотите удалить разрывы строк
- Перейдите на вкладку «Главная»
- В группе редактирования нажмите «Найти и выбрать».
- В появившихся вариантах нажмите «Заменить».
- Поместите курсор в поле «Найти что» и используйте сочетание клавиш — Ctrl + J (удерживая клавишу Ctrl, нажмите клавишу J). Вы можете ничего не видеть, но это помещает символ разрыва строки в поле «Найти».
- В поле замены введите запятую, за которой следует пробел (,)
- Нажмите «Заменить все».
Приведенные выше шаги удаляют все разрывы строк и заменяют их запятыми. Это даст вам результат в одной строке в ячейке Excel.
Если вы хотите удалить разрыв строки и заменить его чем-то другим вместо запятой, вам необходимо указать это на шаге 6 (в поле «Заменить на»).
Примечание. Рекомендуется создать резервную копию файла с данными, чтобы не потерять их в случае, если они понадобятся в будущем.
Удаление разрывов строк с помощью формулы
Еще один способ избавиться от разрывов строк в Excel — использовать формулу. Хотя метод «Найти и заменить» дает статические результаты, формула выдаст результаты, которые будут автоматически обновляться, если вы внесете какие-либо изменения в исходный набор данных.
Предположим, у вас есть набор данных, показанный ниже, и вы хотите удалить разрывы строк во всех ячейках.
Ниже приведена формула, которая сделает это:
= ПОДСТАВИТЬ (A2; СИМВОЛ (10); «»)
Функция SUBSTITUTE находит и заменяет символ CHAR (10), который представляет символ перевода строки. Таким образом, приведенная выше формула находит все разрывы строк и заменяет их пробелами, что по сути означает, что эти разрывы строк были удалены.
Если вы хотите, чтобы результат был разделен запятой (или любым другим символом), вы можете использовать следующую формулу:
= ПОДСТАВИТЬ (A2; СИМВОЛ (10); «;»)
Примечание. Если у вас включен режим переноса текста в ячейке, в которой вы получаете результат формулы, вы все равно можете увидеть, как какой-то текст перемещается на следующую строку в той же ячейке. Это не из-за разрывов строк. Если вы отрегулируете столбец
Удаление разрывов строк с помощью VBA
Если вам удобно использовать VBA, это может быть самым быстрым способом избавиться от разрывов строк в Excel.
Но вам нужно поработать, прежде чем выполнять операцию в один клик.
Ниже приведен код VBA, который будет проходить через каждую ячейку в
Sub RemoveLineBreaks () для каждой ячейки в выделении Cell.Value = Replace (Cell.Value, Chr (10), «,») Next End Sub
В приведенном выше коде используется функция REPLACE в VBA для замены всех символов разрыва строки в ячейке запятой, за которой следует символ пробела.
Результат этого кода VBA является статическим, и вы не можете его отменить. Итак, если вы планируете использовать его, я настоятельно рекомендую вам создать копию исходного набора данных перед использованием кода.
Вы можете поместить этот код в обычный модуль в Excel, и в случае, если вам нужно часто его использовать и он нужен во всех ваших книгах Excel, вы можете сохранить этот код либо в личной книге макросов, либо добавить его как Надстройка Excel.
Если вы хотите использовать его одним щелчком мыши, вы можете добавить этот код макроса на панель быстрого доступа. Таким образом, все, что вам нужно сделать, это сделать выбор и щелкнуть кнопку макроса в QAT, чтобы запустить код.
Разрыв строки Vs. Возврат каретки
Между разрывом строки в Excel и возвратом каретки есть небольшая разница.
Функция возврата каретки — поместить курсор в начало предложения. Он использовался в ранних версиях пишущих машинок, а затем и в компьютерах. Сам по себе возврат каретки не приведет к разрыву строки в Excel. В сочетании с переводом строки приводит к разрыву строки.
В большинстве случаев, когда вы видите разрыв строки в Excel, в нем есть возврат каретки.
Кроме того, когда вы используете ALT Enter для вставки разрыва строки в Excel, он вставляет только перевод строки, но не возврат каретки.
Тогда зачем нам беспокоиться о возврате каретки? Потому что вы можете получить его в своих данных, если он был загружен из базы данных, которая использует возврат каретки.
Код возврата каретки в формате ASCII — 13 (CR, код ASCII 13), и вы можете найти и заменить его с помощью формул.
Вы можете узнать больше о разнице между переводом строки и возвратом каретки здесь.
Источник
Adblock
detector
Эта инструкция познакомит Вас с тремя способами удалить возвраты каретки из ячеек в Excel. Вы также узнаете, как заменить символы переноса строки другими символами. Все предложенные решения работают в Excel 2013, 2010, 2007 и 2003.
Переносы строк могут появиться в тексте по разным причинам. Обычно возвраты каретки встречаются в рабочей книге, например, когда текст скопирован с веб-страницы, когда они уже есть в рабочей книге, полученной от клиента, или, когда мы сами добавляем их нажатием клавиш Alt+Enter.
Какой бы ни была причина их появления, сейчас перед нами стоит задача удалить возвраты каретки, так как они мешают выполнять поиск фраз и приводят к беспорядку в столбце при включении режима переноса текста.
Все три представленных способа довольно быстры. Выбирайте тот, который Вам больше подходит:
- Удаляем все переносы строк вручную, чтобы быстро навести порядок на одном листе.
- Удаляем переносы строк при помощи формул и настраиваем таким образом комплексную обработку текстовых данных в ячейках.
- Используем макрос VBA, чтобы очистить от переносов строк несколько рабочих книг.
Замечание: Первоначально термины «Возврат каретки» и «Перевод строки» использовались при работе на печатных машинках и обозначали две различных операции. Любознательный читатель может самостоятельно найти подробную информацию об этом в интернете.
Компьютеры и программное обеспечение для работы с текстами разрабатывались с учётом особенностей печатных машинок. Вот почему теперь для обозначения разрыва строки используют два различных непечатаемых символа: Возврат каретки (Carriage return, CR или ASCII код 13) и Перевод строки (Line feed, LF или ASCII код 10). В Windows используются оба символа вместе, а в системах *NIX применяется только перевод строки.
Будьте внимательны: В Excel встречаются оба варианта. При импорте из файлов .txt или .csv данные обычно содержат возвраты каретки и переводы строки. Когда перенос строки вводится вручную нажатием Alt+Enter, Excel вставляет только символ перевода строки. Если же файл .csv получен от поклонника Linux, Unix или другой подобной системы, то готовьтесь к встрече только с символом перевода строки.
Содержание
- Удаляем возвраты каретки вручную
- Удаляем переносы строк при помощи формул Excel
- Удаляем переносы строк при помощи макроса VBA
Удаляем возвраты каретки вручную
Плюсы: Этот способ самый быстрый.
Минусы: Никаких дополнительных плюшек 🙁
Вот так можно удалить переносы строк при помощи инструмента «Найти и заменить»:
- Выделите все ячейки, в которых требуется удалить возвраты каретки или заменить их другим символом.
- Нажмите Ctrl+H, чтобы вызвать диалоговое окно Найти и заменить (Find and Replace).
- Поставьте курсор в поле Найти (Find what) и нажмите Ctrl+J. На первый взгляд поле покажется пустым, но если посмотрите внимательно, то увидите в нём маленькую точку.
- В поле Заменить на (Replace With) введите любое значение для вставки вместо возвратов каретки. Обычно для этого используют пробел, чтобы избежать случайного склеивания двух соседних слов. Если нужно просто удалить переносы строк, оставьте поле Заменить на (Replace With) пустым.
- Нажмите кнопку Заменить все (Replace All) и наслаждайтесь результатом!
Удаляем переносы строк при помощи формул Excel
Плюсы: Доступно использование последовательных или вложенных формул для сложной проверки текста в обрабатываемой ячейке. Например, можно удалить возвраты каретки, а затем найти лишние начальные или конечные пробелы, или лишние пробелы между словами.
В некоторых случаях переносы строк необходимо удалять, чтобы в дальнейшем использовать текст в качестве аргументов функций, не внося изменения в исходные ячейки. Результат можно использовать, например, как аргумент функции ПРОСМОТР (LOOKUP).
Минусы: Потребуется создать вспомогательный столбец и выполнить множество дополнительных шагов.
- Добавьте вспомогательный столбец в конце данных. В нашем примере он будет называться 1 line.
- В первой ячейке вспомогательного столбца (C2) введите формулу для удаления/замены переносов строк. Ниже приведены несколько полезных формул для различных случаев:
- Эта формула подходит для использования с комбинациями возврат каретки / перенос строки, характерными для Windows и для UNIX.
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2;СИМВОЛ(13);"");СИМВОЛ(10);"")
=SUBSTITUTE(SUBSTITUTE(B2,CHAR(13),""),CHAR(10),"")
- Следующая формула подходит для замены переноса строки любым другим символом (например, «, » – запятая + пробел). В таком случае строки не будут объединены и лишние пробелы не появятся.
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2;СИМВОЛ(13);"");СИМВОЛ(10);", ")
=TRIM(SUBSTITUTE(SUBSTITUTE(B2,CHAR(13),""),CHAR(10),", ")
- А вот так можно удалить все непечатаемые символы из текста, включая переносы строк:
=ПЕЧСИМВ(B2)
=CLEAN(B2)
- Эта формула подходит для использования с комбинациями возврат каретки / перенос строки, характерными для Windows и для UNIX.
- Скопируйте формулу во все ячейки столбца.
- По желанию, можете заменить исходный столбец новым, с удалёнными переносами строк:
- Выделите все ячейки в столбце C и нажатием Ctrl+C скопируйте данные в буфер обмена.
- Далее выделите ячейку B2, нажмите сочетание клавиш Shift+F10 и выберите Вставить (Insert).
- Удалите вспомогательный столбец.
Удаляем переносы строк при помощи макроса VBA
Плюсы: Создаём один раз – используем снова и снова с любой рабочей книгой.
Минусы: Требуется хотя бы базовое знание VBA.
Макрос VBA из следующего примера удаляет возвраты каретки из всех ячеек на активном листе.
Sub RemoveCarriageReturns() Dim MyRange As Range Application.ScreenUpdating = False Application.Calculation = xlCalculationManual For Each MyRange In ActiveSheet.UsedRange If 0 < InStr(MyRange, Chr(10)) Then MyRange = Replace(MyRange, Chr(10), "") End If Next Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
Если Вы не слишком близко знакомы с VBA, рекомендую изучить статью о том, как вставить и выполнить код VBA в Excel.
Оцените качество статьи. Нам важно ваше мнение: