Функция VBA для разделения текстовой строки по языкам
- Макросы VBA Excel
- Текстовые строки
|
Функция 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.xls |
22 КБ |
131 |
3 недели 4 дня назад |
|