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