MyTetra Share
Делитесь знаниями!
Функция VBA для разделения текстовой строки по языкам
03.01.2018
16:00
Текстовые метки: SplitLanguages,Split,Languages
Раздел: VBA - Кодировки

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


Функция 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 дня назад

  • 7586 просмотров
Прикрепленные файлы:
Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования