Как удалить пробелы и пустые строки в Excel с помощью Regex

Используйте регулярные выражения, чтобы удалить различные виды пробелов, но сохранить перенос строки, заменить несколько пробелов подряд одним символом, убрать пробелы только между числами.

Поиск и замена в Excel с помощью регулярных выражений

В этом руководстве показано, как быстро добавить пользовательскую функцию в свои рабочие книги, чтобы вы могли использовать регулярные выражения для замены текстовых строк в Excel. Когда дело доходит до замены одного фрагмента текста другим, Microsoft Excel предоставляет ряд опций на выбор, включая инструмент «Найти и заменить» и несколько текстовых функций замены. Зачем кому-то усложнять ситуацию с помощью регулярных выражений? Но дело в том, что стандартные функции Excel могут обрабатывать только ту строку текста, которую вы явным образом укажете. Чтобы найти строку, соответствующую некоторому шаблону, и заменить ее чем-то другим, необходимы регулярные выражения. Вот о чем мы будем говорить в этой статье: Функция замены при помощи регулярных выражений Excel VBA Замена текста, соответствующего шаблону Замена чисел в тексте Заменить денежные суммы Поиск и замена всех совпадений Замена определенного по счёту экземпляра Поиск и замена в Excel с помощью Regex Tools Регулярное выражение – это шаблон, состоящий из последовательности символов, который можно использовать для поиска соответствующих символов в тексте. Функция замены при помощи регулярных выражений Excel VBA Как известно, встроенные функции Excel не поддерживают регулярные выражения. Чтобы иметь возможность использовать регулярные выражения в своих формулах, вам нужно создать собственную функцию. К счастью, объект RegExp уже существует в VBA, и мы используем этот объект в приведенном ниже коде: Public Function RegExpReplace(text As String, pattern As String, text_replace As String, Optional instance_num As Integer = 0, Optional match_case As Boolean = True) As String Dim text_result, text_find As String Dim matches_index, pos_start As Integer On Error GoTo ErrHandle text_result = text Set regex = CreateObject("VBScript.RegExp") regex.pattern = pattern regex.Global = True regex.MultiLine = True If True = match_case Then regex.ignorecase = False Else regex.ignorecase = True End If Set matches = regex.Execute(text) If 0 < matches.Count Then If (0 = instance_num) Then text_result = regex.Replace(text, text_replace) Else If instance_num <= matches.Count Then pos_start = 1 For matches_index = 0 To instance_num - 2 pos_start = InStr(pos_start, text, matches.item(matches_index), vbBinaryCompare) + Len(matches.item(matches_index)) Next matches_index text_find = matches.item(instance_num - 1) text_result = Left(text, pos_start - 1) & Replace(text, text_find, text_replace, pos_start, 1, vbBinaryCompare) End If End If End If RegExpReplace = text_result Exit Function ErrHandle: RegExpReplace = CVErr(xlErrValue) End Function Добавьте этот код VBA в вашу рабочую книгу.  Советы: Если у вас мало опыта работы с VBA, это руководство проведет вас через процесс: Как создать пользовательскую функцию VBA в Excel . После добавления кода не забудьте сохранить файл как книгу с поддержкой макросов (.xlsm). Синтаксис RegExpReplace Функция RegExpReplace ищет во входной строке значения, соответствующие регулярному выражению, и заменяет найденные совпадения указанным вами текстом. Функция принимает 5 аргументов, но обязательными являются только первые три. RegExpReplace(текст; шаблон; text_replace; [instance_num]; [match_case]) Где: Текст (обязательно) — текстовая строка для поиска. Шаблон (обязательно) — регулярное выражение для сопоставления. Text_replace (обязательно) — текст для

Как правильно сохранить и применять пользовательскую функцию Excel

Как правильно сохранить и применять пользовательские функции в Excel. Как вызывать пользовательские функции из другой книги или надстройки.

Пользовательская функция и макрос VBA: преимущества и недостатки

В чем различие между пользовательскими функциями и макросами Excel? Узнайте, что можно и что нельзя сделать с помощью пользовательских функций, их плюсы и минусы.

Почему пользовательская функция не работает: проблемы и решения

Как добавить текст подсказки при вводе пользовательской функции? Почему пользовательская функция не работает, не отображается и не пересчитывается? Что вызывает эти проблемы и как их быстро решить.

Как создать пользовательскую функцию?

Чтобы расширить возможности вычислений, Excel при помощи VBA позволяет добавить новые пользовательские функции. Объясним, как их создавать и использовать, чтобы сделать вашу работу легче.

Go to Top