Skip to content
На чтение 3 мин. Просмотров 5k.
Что макрос делает: Иногда у вас есть непечатаемые символы в ваших данных. Эти символы должны быть удалены, прежде чем можно будет использовать данные для серьезного анализа.
Вы, можете записывать макрос выполнения поиска и замены (записанный макрос является отличным способом для автоматизации поиска и замены процедур). Таким образом, ваша первая реакция может быть, чтобы просто найти и заменить эти символы. Проблема состоит в том, что эти непечатаемые символы являются по большей части невидимым и, таким образом, трудно очистить обычной функцией поиска и замены. Самый простой способ, чтобы очистить их через VBA.
Если вы боретесь с невидимыми символами, используйте этот общий макрос, чтобы найти и удалить все непечатаемые символы.
Содержание
- Как макрос работает
- Код макроса
- Как этот код работает
- Как использовать
Как макрос работает
Этот макрос является относительно простым, поиск и замена обычное дело. Мы используем метод Replace, говоря Excel найти и заменить. Это похоже на синтаксис ручного выполнения поиска и замены.
Разница заключается в том, что кодирование текста использует коды символов, чтобы указать наш текст для поиска. Каждый символ имеет исходный код ASCII, похожий на серийный номер. Например, строчная буква А имеет ASCII-код 97, строчной букве С соответствует ASCII-код 99.
Аналогичным образом, невидимые символы также имеют код:
Код символа перевода строки — 10.
Код возврата каретки — 13.
Код неразрывного пробела — 160.
Этот макрос использует метод Replace, передавая код ASCII каждого символа в качестве поискового элемента. Затем каждый код символа заменяется пустой строкой:
Код макроса
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-кодов можно найти в любой поисковой системе.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.
Иногда у вас есть непечатаемые символы данных. Эти символы должны быть удалены, прежде чем можно будет использовать данные для серьезного анализа.
Вы, можете записать макрос поиска и замены (записанный макрос является отличным способом для автоматизации процедур поиска и замены). Ваша первая реакция может быть — просто найти и заменить эти символы. Проблема состоит в том, что эти непечатаемые символы являются по большей части невидимым и, таким образом, их трудно заметить, чтобы очистить функцией поиска и замены.
Самый простой способ — очистить их через VBA. Если вы боретесь с невидимыми символами, используйте этот макрос, чтобы найти и удалить все непечатаемые символы.
Этот макрос является относительно простым. Мы используем метод Replace, говоря Excel найти и заменить. Это похоже на синтаксис ручного выполнения поиска и замены. Разница заключается в том, что кодирование текста использует коды символов, а не сами символы.
Каждый символ имеет исходный код ASCII, похожий на серийный номер. Например, строчная буква А имеет ASCII-код 97, строчной букве С соответствует ASCII-код 99.
Аналогичным образом, невидимые символы также имеют код:
— Код символа переноса строки — 10.
— Код возврата каретки — 13.
— Код неразрывного пробела — 160.
Этот макрос использует метод Replace, чтобы передать код ASCII каждого символа в качестве поискового элемента. Затем каждый код символа заменяется пустотой.
удалить непечатные символы в диапазоне |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Предположим, есть ряд данных, например JAMES0898 # 4% ^ {}, который содержит не буквенно-цифровые символы на листе, и теперь вам просто нужно удалить не буквенно-цифровые символы и сохранить буквенно-цифровые символы. Например, JAMES0898 # 4% ^ {} > JAMES0898. Как быстро удалить эти не буквенно-цифровые символы в Excel?
- Удалите не буквенно-цифровые символы с помощью кода VBA
- Удалите не буквенно-цифровые символы с помощью функции, определяемой пользователем
- Удалить не буквенно-цифровые символы с помощью Kutools for Excel
Удалите не буквенно-цифровые символы с помощью кода VBA
С помощью следующего короткого кода VBA вы также можете удалить не буквенно-цифровые символы. Сделать это можно так:
1. Нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, а затем вставьте ниже код VBA в модуль:
VBA: удалить все не буквенно-цифровые символы
Sub RemoveNotAlphasNotNum()
'Updateby2014128
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
xOut = ""
For i = 1 To Len(Rng.Value)
xTemp = Mid(Rng.Value, i, 1)
If xTemp Like "[a-z.]" Or xTemp Like "[A-Z.]" Or xTemp Like "[0-9.]" Then
xStr = xTemp
Else
xStr = ""
End If
xOut = xOut & xStr
Next i
Rng.Value = xOut
Next
End Sub
3, нажмите F5 ключ или щелкните Run кнопку для выполнения кода.
4. Затем выберите диапазон, из которого вы хотите удалить все не буквенно-цифровые символы во всплывающем диалоговом окне, и щелкните значок OK кнопку.
Теперь все не буквенно-цифровые символы были удалены из выбранного диапазона. Смотрите скриншот:
2 щелчка мышью, чтобы удалить все не буквенно-цифровые символы с помощью замечательного инструмента
Обычно мы помещаем курсор в ячейку, а затем вручную удаляем небуквенно-цифровые символы один за другим. Если вы знакомы с VBA или пользовательскими функциями, вы можете написать код и удалить все символы, кроме буквенно-цифровых, массово. Но здесь я порекомендую удивительный инструмент, функцию удаления символов из Kutools for Excel, который может удалить все виды символов всего за 2 клика!
Удалите не буквенно-цифровые символы с помощью функции, определяемой пользователем
Вы также можете определить настраиваемую функцию для удаления всех не буквенно-цифровых символов из ячеек в Excel.
1, нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, а затем вставьте приведенный ниже код в модуль:
Функция, определяемая пользователем: удаление всех не буквенно-цифровых символов
Function DeleteNonAlphaNumeric(xStr As String) As String
Dim xStrR As String
Dim xCh As String
Dim xStrMode As String
Dim xInt As Integer
xStrMode = "[A-Z.a-z 0-9]"
xStrR = ""
For xInt = 1 To Len(xStr)
xCh = Mid(xStr, xInt, 1)
If xCh Like xStrMode Then
xStrR = xStrR & xCh
End If
Next
DeleteNonAlphaNumeric = xStrR
End Function
3. Теперь вернитесь на рабочий лист, выберите пустую ячейку и введите формулу = DeleteNonAlphaNumeric (B3), а затем перетащите загрузку дескриптора автозаполнения, чтобы применить эту формулу к другим ячейкам.
Удалить не буквенно-цифровые символы с помощью Kutools for Excel
Для двух вышеуказанных методов вам необходимо знать коды, но, как новички в Excel, большинство из нас не может использовать код, поэтому здесь я дам вам простой способ сделать это.
Kutools for Excel— Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Если вы установили Kutools for Excel, выполните следующие действия:
1. Выберите диапазон, из которого нужно удалить не буквенно-цифровые символы, и нажмите Кутулс > Текст > Удалить символы.
2, Затем Удалить символы появится диалоговое окно, только отметьте Не буквенно-цифровые и нажмите Ok кнопку.
Теперь все не буквенно-цифровые символы были удалены из текстовых строк.
Статьи по теме:
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (3)
Оценок пока нет. Оцените первым!
1 / 1 / 0 Регистрация: 15.02.2011 Сообщений: 33 |
|
1 |
|
А как можно выкинуть из строки непечатные символы?06.07.2011, 11:23. Показов 3724. Ответов 3
Есть ли способ выкинуть из переменной типа String непечатные символы Или в цикле перебирать каждый символ и формировать новую строку ? Вариант szStringExample[12] не прокатывает.
0 |
snov |
||||
06.07.2011, 11:48 |
2 |
|||
Можно в цикле перебрать все интересующие символы, а потом
Тут символ Chr(i) — символ с ASCII=i, заменяется на пустое место |
1 / 1 / 1 Регистрация: 10.04.2011 Сообщений: 415 |
|
06.07.2011, 12:33 |
3 |
я пользуюсь для доступа к отдельным симdолам строки функцией mid(строка, начало, длина), replace не советую, она не работает в старых версиях экселя.
0 |
1 / 1 / 0 Регистрация: 15.02.2011 Сообщений: 33 |
|
06.07.2011, 13:17 [ТС] |
4 |
Спасибо вам огромное, выручили !!!
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
06.07.2011, 13:17 |
4 |