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 КБ1271 неделя 21 час назад

Комментарии

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

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

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

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