mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

Функция VBA для разделения текстовой строки по языкам

Результат разбиения текстовой строки на русскую и английскую часть при помощи формулы UDF

Функция SplitLanguages предназначена для отделения русских слов от английских

(для разбиения заданной текстовой строки на две, в одной из которых будут только русские слова, а в другой - только английские)

Знаки препинания, пробелы, и прочие символы, не относящиеся к конкретному языку, попадают в обе строки.

Например, дана исходная строка "Разработка VBA макросов для программы Microsoft Excel"

Функция возвратит 2 строки: русскую "Разработка макросов для программы", и английскую "VBA Microsoft Excel"

Sub ПримерИспользования()
    txt = "Разработка VBA макросов для программы Microsoft Excel"
    РусскаяЧасть = SplitLanguages(txt)(0)
    АнглийскаяЧасть = SplitLanguages(txt)(1)
 
    Debug.Print РусскаяЧасть    ' результат: "Разработка макросов для программы"
    Debug.Print АнглийскаяЧасть ' результат: "VBA Microsoft Excel"
End Sub

Код функции SplitLanguages:

Function SplitLanguages(ByVal txt As String)
    ' функция принимает в качестве параметра текстовую строку,
    ' содержащую слова на разных языках
    ' возвращает массив из 2 значений: русские слова (0), английские слова (1)
    Dim arr(0 To 1)
    For i = 1 To Len(txt)
        letter = Mid$(txt, i, 1)
        If letter Like "[!A-z]" Then arr(0) = arr(0) & letter
        If letter Like "[!А-я]" Then arr(1) = arr(1) & letter
    Next i
    arr(0) = Application.Trim(arr(0)): arr(1) = Application.Trim(arr(1))
    SplitLanguages = arr
End Function

Внимание: для использования кода не в Excel (в VB, или других приложениях Office)
замените строку

arr(0) = Application.Trim(arr(0)): arr(1) = Application.Trim(arr(1))

на
arr(0) = Trim(arr(0)): arr(1) = Trim(arr(1))

(поскольку Application.Trim - это встроенная функция Excel)

Функцию SplitLanguages можно использовать и в качестве формулы на листе Excel
(см. пример в прикреплённом файле)

ВложениеРазмерЗагрузкиПоследняя загрузка
SplitLanguages.xls22 КБ1279 недель 2 дня назад

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
   ____       _   _                     _ 
/ ___| | | | | __ _ _ _ (_)
| | _ | | | | / _` | | | | | | |
| |___ | |_| | | | | (_| | | |_| | | |
\____| \___/ |_| \__, | \__, | _/ |
|_| |___/ |__/
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

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