MyTetra Share
Делитесь знаниями!
Как очистить данные от непечатаемых символов
Время создания: 12.10.2019 20:25
Раздел: Разные закладки - VBA - Text
Запись: xintrea/mytetra_db_adgaver_new/master/base/1570884035vssdsc97yq/text.html на raw.githubusercontent.com

Как очистить данные от непечатаемых символов

Автор Дмитрий Якушев На чтение3 мин. Просмотров215

Что макрос делает: Иногда у вас есть непечатаемые символы в ваших данных. Эти символы должны быть удалены, прежде чем можно будет использовать данные для серьезного анализа.
Вы, можете записывать макрос выполнения поиска и замены (записанный макрос является отличным способом для автоматизации поиска и замены процедур). Таким образом, ваша первая реакция может быть, чтобы просто найти и заменить эти символы. Проблема состоит в том, что эти непечатаемые символы являются по большей части невидимым и, таким образом, трудно очистить обычной функцией поиска и замены. Самый простой способ, чтобы очистить их через VBA.
Если вы боретесь с невидимыми символами, используйте этот общий макрос, чтобы найти и удалить все непечатаемые символы.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

Этот макрос является относительно простым, поиск и замена обычное дело. Мы используем метод 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. Шаг 1 ищет и удаляет символы перевода строки. Код этого символа равен 10. Мы можем определить код символа 10, передавая идентификатор с помощью функции Chr. После того, как Chr (10) определяется как поисковый элемент, то макрос передает пустую строку к замене аргумента.
    Обратите внимание на использование ActiveSheet.UsedRange. Excel ищет во всех ячейках, которые имели данные, введенные в них. Вы можете заменить объект UsedRange с реальным диапазоном, если это необходимо.
  2. Шаг 2 находит и удаляет символ возврата каретки.
  3. Шаг 3 находит и удаляет неразрывные пробелы.

Символы, описанные в этом макросе лишь некоторые из многих непечатаемых символов.
Если вы работаете с другими, вы можете просто добавить новую строку кода, указав соответствующий код символа. Список ASCII-кодов можно найти в любой поисковой системе.

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования