Функция 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
(см. пример в прикреплённом файле)
Комментарии
Огромное вам человеческое спасибо, очень долго искал такую функцию
Отправить комментарий