Как очистить данные от непечатаемых символов
Автор Дмитрий Якушев На чтение3 мин. Просмотров215
Что макрос делает: Иногда у вас есть непечатаемые символы в ваших данных. Эти символы должны быть удалены, прежде чем можно будет использовать данные для серьезного анализа.
Вы, можете записывать макрос выполнения поиска и замены (записанный макрос является отличным способом для автоматизации поиска и замены процедур). Таким образом, ваша первая реакция может быть, чтобы просто найти и заменить эти символы. Проблема состоит в том, что эти непечатаемые символы являются по большей части невидимым и, таким образом, трудно очистить обычной функцией поиска и замены. Самый простой способ, чтобы очистить их через VBA.
Если вы боретесь с невидимыми символами, используйте этот общий макрос, чтобы найти и удалить все непечатаемые символы.
Содержание
- Как макрос работает
- Код макроса
- Как этот код работает
- Как использовать
Как макрос работает
Этот макрос является относительно простым, поиск и замена обычное дело. Мы используем метод Replace, говоря Excel найти и заменить. Это похоже на синтаксис ручного выполнения поиска и замены.
Разница заключается в том, что кодирование текста использует коды символов, чтобы указать наш текст для поиска. Каждый символ имеет исходный код ASCII, похожий на серийный номер. Например, строчная буква А имеет ASCII-код 97, строчной букве С соответствует ASCII-код 99.
Аналогичным образом, невидимые символы также имеют код:
Код символа перевода строки — 10.
Код возврата каретки — 13.
Код неразрывного пробела — 160.
Этот макрос использует метод Replace, передавая код ASCII каждого символа в качестве поискового элемента. Затем каждый код символа заменяется пустой строкой:
Код макроса
1
2
3
4
5
6
7
8 |
Sub UdalitNepechataemieSimvoli()
'Шаг 1: Удалить перевод строки
ActiveSheet.UsedRange.Replace What:=Chr(10), Replacement:=""
'‘Шаг 2: Удалить возврат каретки
ActiveSheet.UsedRange.Replace What:=Chr(13), Replacement:=""
'Шаг 3: Удалить неразрывный пробел
ActiveSheet.UsedRange.Replace What:=Chr(160), Replacement:=""
End Sub |
Как этот код работает
- Шаг 1 ищет и удаляет символы перевода строки. Код этого символа равен 10. Мы можем определить код символа 10, передавая идентификатор с помощью функции Chr. После того, как Chr (10) определяется как поисковый элемент, то макрос передает пустую строку к замене аргумента.
Обратите внимание на использование ActiveSheet.UsedRange. Excel ищет во всех ячейках, которые имели данные, введенные в них. Вы можете заменить объект UsedRange с реальным диапазоном, если это необходимо.
- Шаг 2 находит и удаляет символ возврата каретки.
- Шаг 3 находит и удаляет неразрывные пробелы.
Символы, описанные в этом макросе лишь некоторые из многих непечатаемых символов.
Если вы работаете с другими, вы можете просто добавить новую строку кода, указав соответствующий код символа. Список ASCII-кодов можно найти в любой поисковой системе.