Vba excel удалить пробелы в начале и конце строки
Имеется excel файл с большим количеством страниц, строк и столбцов.
В ячейках: Перед началом слов и после них имеются НЕ НУЖНЫЕ пробелы.
Напишите пожалуйста макрос при запуске которого будут удаться все пробелы в начале и конце предложения внутри выделенной ячейки, внутри выделенного столбца, внутри выделенной строки.
Уточню, что пробелы между словами необходимо оставить, даже если их несколько идущих подряд.
Пример необходимо замены:
заменить это: " Привет, замените меня ", на это: "Привет, замените меня"
Прикрепляю во вложении пример файла исходник.
Удалить повторяющиеся пробелы, также пробелы в начале и в конце строки (ассемблерная вставка)
Написать ассемблерную вставку, реализующую следующую обработку строки: согласно варианту. Оформить.
Удалить пробелы в начале и конце строки
Удалить группу пробелов, с которых, возможно начинается и заканчивается строка строки читаются из.
Удалить пробелы в начале и в конце строки
Задали в универе программу именно на FASM, помогите кто сможет. Задана строка, удалить из неё.
Удалить пробелы в начале и конце текста
Подскажите пожалуйста, как удалить пробелы в начале и конце текста? Аналог функции Trim() в VBA.
Решение
Удалить пробелы в начале и конце текста
Здравствуйте, можете помочь с задачей, которая должна быть написана в Vba-Excel. Дан текст.
Удалить все пробелы в начале и в конце строки
Дана символьная строка.Удалить все пробелы в начале и в конце строки. Помогите решить пожалуйста.
Удалить переносы строк в начале и конце но не удалять пробелы
Как удалить переносы в начале и конце строчки, так же удалить отступы, пробелы с конца. Но.
Как удалить пробелы и знаки табуляции в начале и конце строки?
Как удалить пробелы и знаки табуляции в начале и конце строки? Я написал код но не понимаю в чем.
Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся
Дана строка предложение. Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся. .
Строка: Преобразовать строку к верхнему регистру и удалить пробелы в начале и конце строки
Вводится строка из трёх слов , разделённых пробелами, составить программу , преобразующую строку к.
Эта функция извлекает левую часть строки с заданным количеством символов.
Синтаксис функции Left:
Left(строка, длина)
- строка — обязательный аргумент: строковое выражение, из значения которого вырезается левая часть;
- длина — обязательный аргумент: числовое выражение, указывающее количество извлекаемых символов.
Если аргумент «длина» равен нулю, возвращается пустая строка. Если аргумент «длина» равен или больше длины строки, возвращается строка полностью.
Функция Mid
Эта функция извлекает часть строки с заданным количеством символов, начиная с указанного символа (по номеру).
Синтаксис функции Mid:
Mid(строка, начало, [длина])
- строка — обязательный аргумент: строковое выражение, из значения которого вырезается часть строки;
- начало — обязательный аргумент: числовое выражение, указывающее положение символа в строке, с которого начинается извлекаемая часть;
- длина — необязательный аргумент: числовое выражение, указывающее количество вырезаемых символов.
Если аргумент «начало» больше, чем количество символов в строке, функция Mid возвращает пустую строку. Если аргумент «длина» опущен или его значение превышает количество символов в строке, начиная с начального, возвращаются все символы от начальной позиции до конца строки.
Функция Right
Эта функция извлекает правую часть строки с заданным количеством символов.
Синтаксис функции Right:
Right(строка, длина)
- строка — обязательный аргумент: строковое выражение, из значения которого вырезается правая часть;
- длина — обязательный аргумент: числовое выражение, указывающее количество извлекаемых символов.
Если аргумент «длина» равен нулю, возвращается пустая строка. Если аргумент «длина» равен или больше длины строки, возвращается строка полностью.
Пример
В этом примере будем использовать все три представленные выше функции для извлечения из ФИО его составных частей. Для этого запишем в ячейку «A1» строку «Иванов Сидор Петрович», из которой вырежем отдельные компоненты и запишем их в ячейки «A2:A4».
Весьма часто в нашем распоряжении оказываются данные, которые хоть и содержат полезную информацию, но не пригодны для немедленного анализа. Одной из весьма распространенных проблем является наличие лишних пробелов - в начале, в конце или внутри между словами.
Лечится эта проблема очень легко - специальной функцией СЖПРОБЕЛЫ (TRIM) . Она убирает все лишние пробелы, но оставляет по одному пробелу между словами:
Просто и красиво. Но есть пара нюансов.
Неразрывные пробелы не удаляются
Чайной ложкой дегтя тут представляется только невозможность удалять таким способом неразрывные пробелы. Это особый вариант пробела (внешне неотличимый от обычного), на котором не бывает переноса строки. Обычно его используют в случаях типа "г. Москва" или "Иванов И.И.", чтобы эти фразы не разбивались между строчками. В Microsoft Word такой спецсимвол вводится сочетанием клавиш Ctrl+Shift+Пробел и отображается в виде кружка, а не точки:
К сожалению, функция СЖПРОБЕЛЫ (TRIM) удаляет только обычные пробелы. Для удаления неразрывных нужно использовать другие функции или макросы.
Формулы для удаления начальных и концевых пробелов
Если необходимо удалить только начальные пробелы (т.е. не трогать концевые и пробелы между словами), то придется делать это хитрыми формулами, т.к. готовой функции (по аналогии с функцией LTrim в VBA) в Microsoft Excel, к сожалению, нет.
Формула для удаления лишних пробелов только слева будет выглядеть так:
В английской версии =MID(A1;FIND(LEFT(TRIM(A1));A1);LEN(A1))
Формула для удаления лишних пробелов только справа будет чуть посложнее и должна вводиться уже как формула массива (с Ctrl+Shift+Enter):
В английском варианте это будет =LEFT(A1;MAX((MID(A1&REPT(" ";99);ROW(A1:A99),1);" ")*ROW(A1:A99)))
Ссылки по теме
На эту тему могу порекомендовать еще функцию ПЕЧСИМВ – она удаляет из текста всякие непечатные символы (символы которых нет на клавиатуре), а главное символ переноса строки, который вызывает много проблем при обработке данных в Excel.
Как правило, непечатные символы попадают в текст при ручном копировании данных из различных учетных систем, например 1С..
Для удаления пробелов в начале и в конце строки можно использовать условный оператор ЕСЛИ.
До этого желательно несколько раз с помощью поиска и замены убрать двойные пробелы.
Пробел в начале строки: =ЕСЛИ(ЛЕВСИМВ(А1;1)=" ";ПРАВСИМВ(А1;ДЛСТР(А1)-1))
Пробел в конце строки: =ЕСЛИ(ПРАВСИМВ(А1;1)=" ";ЛЕВСИМВ(А1;ДЛСТР(А1)-1))
А почему бы во всех примерах не добавить формулу в виде текста, а не в виде рисунка?
Т.е. как английский вариант, чтоб можно было удобно скопировать.
А еще так можно .
Для удаления пробелов в начале и в конце строки
можно использовать функцию =СЦЕПИТЬ(). Допустим, ячейка A1 проблемная ,у неё пробел вначале и в конце, нам это не надо.
Вставляем новый столбец и обрабатываем формулой =СЖПРОБЕЛЫ(A1), далее Выделить - Вст а вить зн а чения, теперь повторяющихся пробелов не будет, но в начале и в конце они остались.
Вставим еще один столбец, а в столбец формулу =СЦЕПИТЬ("&&";A1;"&&") , тут главное чтобы && не встречался в тексте. Опять Выделить - Вст а вить зн а чения . Теперь у нас в начале и конце строки не пробел, а дважды амперсанд+ пробел.
Далее Ctrl+F ищем &&[пробел] - заменить ничем, опять ищем [пробел]&& - заменить ничем, там где были пробелы они будут удалены вместе с амперсандами, там где пробелов не было остались наши &&
Проводим последний Поиск -замену Ctrl+F На й ти && Заменит ь ничем.
Не удобно искать лишние пробелы в чистом виде, а в сочетании с оригинальными символами это просто, мы их как бы помечаем,так можно выделять ненужные символы не только в одной ячейке, но и в массиве данных и разных столбцах. Иногда редактируемые данные не в одном столбце , а в разных. Вместо сложных вычислений первой/последней непустой ячейки, данные сначала объединяем в одну ячейку, с использованием хорошего разделителя, обрабатываем, а потом снова разделяем через "Текст по столбцам".
Зачастую текст, который достается нам для работы в ячейках листа Microsoft Excel далек от совершенства. Если он был введен другими пользователями (или выгружен из какой-нибудь корпоративной БД или ERP-системы) не совсем корректно, то он легко может содержать:
- лишние пробелы перед, после или между словами (для красоты!)
- ненужные символы ("г." перед названием города)
- невидимые непечатаемые символы (неразрывный пробел, оставшийся после копирования из Word или "кривой" выгрузки из 1С, переносы строк, табуляция)
- апострофы (текстовый префикс – спецсимвол, задающий текстовый формат у ячейки)
Давайте рассмотрим способы избавления от такого "мусора".
Замена
"Старый, но не устаревший" трюк. Выделяем зачищаемый диапазон ячеек и используем инструмент Заменить с вкладки Главная – Найти и выделить (Home – Find & Select – Replace) или жмем сочетание клавиш Ctrl+H.
Изначально это окно было задумано для оптовой замены одного текста на другой по принципу "найди Маша – замени на Петя", но мы его, в данном случае, можем использовать его и для удаления лишнего текста. Например, в первую строку вводим "г." (без кавычек!), а во вторую не вводим ничего и жмем кнопку Заменить все (Replace All). Excel удалит все символы "г." перед названиями городов:
Только не забудьте предварительно выделить нужный диапазон ячеек, иначе замена произойдет на всем листе!
Удаление пробелов
Если из текста нужно удалить вообще все пробелы (например они стоят как тысячные разделители внутри больших чисел), то можно использовать ту же замену: нажать Ctrl+H, в первую строку ввести пробел, во вторую ничего не вводить и нажать кнопку Заменить все (Replace All).
Однако, часто возникает ситуация, когда удалить надо не все подряд пробелы, а только лишние – иначе все слова слипнутся друг с другом. В арсенале Excel есть специальная функция для этого – СЖПРОБЕЛЫ (TRIM) из категории Текстовые. Она удаляет из текста все пробелы, кроме одиночных пробелов между словами, т.е. мы получим на выходе как раз то, что нужно:
Удаление непечатаемых символов
В некоторых случаях, однако, функция СЖПРОБЕЛЫ (TRIM) может не помочь. Иногда то, что выглядит как пробел – на самом деле пробелом не является, а представляет собой невидимый спецсимвол (неразрывный пробел, перенос строки, табуляцию и т.д.). У таких символов внутренний символьный код отличается от кода пробела (32), поэтому функция СЖПРОБЕЛЫ не может их "зачистить".
Вариантов решения два:
- Аккуратно выделить мышью эти спецсимволы в тексте, скопировать их (Ctrl+C) и вставить (Ctrl+V) в первую строку в окне замены (Ctrl+H). Затем нажать кнопку Заменить все (Replace All) для удаления.
- Использовать функцию ПЕЧСИМВ (CLEAN) . Эта функция работает аналогично функции СЖПРОБЕЛЫ, но удаляет из текста не пробелы, а непечатаемые знаки. К сожалению, она тоже способна справится не со всеми спецсимволами, но большинство из них с ее помощью можно убрать.
Функция ПОДСТАВИТЬ
Замену одних символов на другие можно реализовать и с помощью формул. Для этого в категории Текстовые в Excel есть функция ПОДСТАВИТЬ (SUBSTITUTE) . У нее три обязательных аргумента:
- Текст в котором производим замену
- Старый текст – тот, который заменяем
- Новый текст – тот, на который заменяем
С ее помощью можно легко избавиться от ошибок (замена "а" на "о"), лишних пробелов (замена их на пустую строку ""), убрать из чисел лишние разделители (не забудьте умножить потом результат на 1, чтобы текст стал числом):
Удаление апострофов в начале ячеек
Апостроф (') в начале ячейки на листе Microsoft Excel – это специальный символ, официально называемый текстовым префиксом. Он нужен для того, чтобы дать понять Excel, что все последующее содержимое ячейки нужно воспринимать как текст, а не как число. По сути, он служит удобной альтернативой предварительной установке текстового формата для ячейки (Главная – Число – Текстовый) и для ввода длинных последовательностей цифр (номеров банковских счетов, кредитных карт, инвентарных номеров и т.д.) он просто незаменим. Но иногда он оказывается в ячейках против нашей воли (после выгрузок из корпоративных баз данных, например) и начинает мешать расчетам. Чтобы его удалить, придется использовать небольшой макрос. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert - Module) и введите туда его текст:
Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то апострофы перед содержимым выделенных ячеек исчезнут.
Английские буквы вместо русских
Это уже, как правило, чисто человеческий фактор. При вводе текстовых данных в ячейку вместо русских букв случайно вводятся похожие английские ("це" вместо русской "эс", "игрек" вместо русской "у" и т.д.) Причем снаружи все прилично, ибо начертание у этих символов иногда абсолютно одинаковое, но Excel воспринимает их, конечно же, как разные значения и выдает ошибки в формулах, дубликаты в фильтрах и т.д.
Можно, конечно, вручную заменять символы латинцы на соответствующую им кириллицу, но гораздо быстрее будет сделать это с помощью макроса. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert - Module) и введите туда его текст:
Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то все английские буквы, найденные в выделенных ячейках, будут заменены на равноценные им русские. Только будьте осторожны, чтобы не заменить случайно нужную вам латиницу :)
Иногда, когда вы копируете данные из других мест и вставляете их на лист Excel, в ячейках могут оставаться лишние пробелы в начале или в конце строк. Удаление пробелов по одному, чтобы данные выглядели аккуратно, занимает много времени. В этом руководстве представлены простые и разумные способы быстрого удаления начальных и конечных пробелов.
Метод A: Удалите все лишние пробелы из строк с помощью функции TRIM (2 шага)
Удалите лишние пробелы из строк
1. Выберите ячейку рядом с ячейкой, в которой вы хотите удалить лишние пробелы из строки, введите эту формулу
=TRIM(B2)
B2 - это ячейка, из которой вы хотите удалить пробелы, см. Снимок экрана:
2. Нажмите Enter Чтобы получить результат, перетащите дескриптор автозаполнения на ячейки, из которых вы хотите удалить лишние пробелы, все начальные и конечные пробелы и лишние пробелы были удалены.
Наконечник:
1. Вы можете скопировать и вставить результаты формулы как значение, как показано ниже:
2. Этот метод довольно прост, если вам нужно только удалить пробелы в смежных ячейках в строке или столбце. Однако, когда вам нужно удалить ведущие пробелы в диапазоне с несколькими строками и столбцами, вам придется использовать эту функцию несколько раз. В этом случае вы можете попробовать метод C.
Удалите все лишние пробелы, включая непечатаемые символы и неразрывные пробелы
Если в вашей строке есть некоторые непечатаемые символы, например, появившиеся в Excel как CHAR (160), их нельзя успешно удалить с помощью функции TRIM. В этом случае вам необходимо объединить функции TRIM, CLEAN и SUBSTITUTE для обработки этого задания.
Используя эту формулу:
=TRIM(CLEAN(SUBSTITUTE(B2,CHAR(160)," ")))
В этом случае ячейка B2 - это ячейка, из которой вы хотите удалить все лишние пробелы.
Затем перетащите маркер заливки на ячейки, к которым вы хотите применить эту формулу.
Примечание:
Функция TRIM удалит все лишние пробелы, включая ведущие, конечные пробелы и лишние пробелы между словами. Если вы хотите удалить только начальные пробелы, перейдите к методу Б. Если вы хотите удалить только начальные пробелы или только конечные пробелы, или хотите удалить все лишние пробелы, включая непечатаемые символы, перейдите к метод C.
13 текстовых инструментов, которые вы должны иметь в Excel, которые повысят вашу эффективность на 90%
▲ Пакетное редактирование текстовой строки в ячейках, например добавление одного и того же текста в ячейки сразу, удаление символов в любой позиции и так далее.
▲ Кроме инструментов, отображаемых на картинке, в Kutools for Excel есть еще 200 расширенных инструментов, которые могут решить ваши 82% головоломки Excel.
▲ Станьте экспертом по Excel за 5 минут, получите признание и продвижение по службе.
▲ 110000+ высокоэффективных сотрудников и 300+ всемирно известных компаний.
60-дневная бесплатная пробная версия, кредитная карта не требуется Читать далее Загрузить сейчас
Метод B: удаление ведущих пробелов из строк с помощью кода VBA (5 шагов)
Если вы хотите преобразовать или импортировать все данные в документе Word в Excel, вы можете использовать код VBA.
1. Нажмите Alt + F11 ключ для включения Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули для создания нового Модули скрипт, скопируйте и вставьте в скрипт приведенный ниже код.
VBA: удаление ведущих пробелов из строки
3. Нажмите F5 ключ для запуска кода, затем KutoolsforExcel Появляется диалоговое окно для выбора ячеек для удаления ведущих пробелов.
4. Выбрав ячейки, нажмите OK, теперь начальные пробелы в выделениях удалены.
Примечание:
С помощью этого кода VBA он удаляет только начальные пробелы, изменяет исходные данные и не поддерживает отмену. Прежде чем применять этот код VBA, сохраните копию своих данных.
Метод C: удалите ведущие / конечные / дополнительные / все пробелы по мере необходимости с помощью Kutools (3 шага)
Этот инструмент является одним из 229 инструментов в Kutools for Excel, он предоставляет пять вариантов удаления различных типов пространств по мере необходимости:
- Удалить ведущие пробелы
- Удалить конечные пробелы
- Удалить начальные и конечные пробелы
- Удалите все лишние пробелы
- Удалить все пробелы
Этот инструмент поддерживает отмену, но перед использованием этой утилиты вам нужно потратить несколько минут, чтобы бесплатная установка его.
1. Выберите данные, из которых вы хотите удалить пробелы, затем щелкните Кутулс > Удалить пробелы. Смотрите скриншот:
2. Затем отметьте нужный вариант в Удалить пробел Диалог.
Удалить только ведущие пробелы:
Удалить только конечные пробелы:
Удалите только начальные и конечные пробелы:
Удалите все лишнее пространство:
Удалить все пробелы:
Читайте также: