Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выделение Англ букв в Русском тексте и наоботор с раскраской - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение Англ букв в Русском тексте и наоботор с раскраской (Макросы/Sub)
Выделение Англ букв в Русском тексте и наоботор с раскраской
makao Дата: Пятница, 13.03.2015, 12:48 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Всем привет!

Столкнулся с такой проблемой, иногда попадаются слова на кирилице, содержащие латиницу и наборот.

Есть несколько формул для определения символов. WrongWords показывает слова, в которых есть и латиница и кирилица. LookForEN, LookForRUorUA выдают неверные буквы. Возможно ли зделать, чтобы формула выдавала всю строку, но неверные символы закрашивались красным цветом (лучше сделать 2 шт, одну для латиницы, одну для кирилицы)?

[vba]
Код


Function WrongWords(ByVal txt As String) As String
     Application.Volatile True
     For Each word In Split(Trim(txt))
         If word Like "*[A-z]*" And word Like "*[À-ÿ]*" Then ' [À-ÿ] = [А-я]
             WrongWords = WrongWords & ", " & word
         End If
     Next word
     If Len(WrongWords) Then WrongWords = Mid(WrongWords, 3)
End Function

[/vba]

[vba]
Код


Function LookForEN(ByVal txt As String)  

    Dim arr(0 To 1)
     For i = 1 To Len(txt)
         letter = Mid$(txt, i, 1)
         If letter Like "[!À-ÿ]" Then arr(0) = arr(0) & letter ' [À-ÿ] = [А-я]
         If letter Like "[!A-z]" Then arr(1) = arr(1) & letter
     Next i
     arr(0) = Application.Trim(arr(0)): arr(1) = Application.Trim(arr(1))
     LookForEN = arr
End Function

Function LookForRUorUA(ByVal txt As String)
     
    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))
     LookForRUorUA = arr
End Function

[/vba]
 
Ответить
СообщениеВсем привет!

Столкнулся с такой проблемой, иногда попадаются слова на кирилице, содержащие латиницу и наборот.

Есть несколько формул для определения символов. WrongWords показывает слова, в которых есть и латиница и кирилица. LookForEN, LookForRUorUA выдают неверные буквы. Возможно ли зделать, чтобы формула выдавала всю строку, но неверные символы закрашивались красным цветом (лучше сделать 2 шт, одну для латиницы, одну для кирилицы)?

[vba]
Код


Function WrongWords(ByVal txt As String) As String
     Application.Volatile True
     For Each word In Split(Trim(txt))
         If word Like "*[A-z]*" And word Like "*[À-ÿ]*" Then ' [À-ÿ] = [А-я]
             WrongWords = WrongWords & ", " & word
         End If
     Next word
     If Len(WrongWords) Then WrongWords = Mid(WrongWords, 3)
End Function

[/vba]

[vba]
Код


Function LookForEN(ByVal txt As String)  

    Dim arr(0 To 1)
     For i = 1 To Len(txt)
         letter = Mid$(txt, i, 1)
         If letter Like "[!À-ÿ]" Then arr(0) = arr(0) & letter ' [À-ÿ] = [А-я]
         If letter Like "[!A-z]" Then arr(1) = arr(1) & letter
     Next i
     arr(0) = Application.Trim(arr(0)): arr(1) = Application.Trim(arr(1))
     LookForEN = arr
End Function

Function LookForRUorUA(ByVal txt As String)
     
    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))
     LookForRUorUA = arr
End Function

[/vba]

Автор - makao
Дата добавления - 13.03.2015 в 12:48
Pelena Дата: Пятница, 13.03.2015, 12:52 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19196
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Посмотрите Готовое решение, может, что-то возьмёте
http://www.excelworld.ru/forum/3-236-1


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПосмотрите Готовое решение, может, что-то возьмёте
http://www.excelworld.ru/forum/3-236-1

Автор - Pelena
Дата добавления - 13.03.2015 в 12:52
Hugo Дата: Пятница, 13.03.2015, 13:13 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Возможно ли зделать, чтобы формула выдавала всю строку, но неверные символы закрашивались красным цветом
- невозможно в принципе.
Макросом сделать можно - см. ссылку от Pelena


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Пятница, 13.03.2015, 13:15
 
Ответить
Сообщение
Возможно ли зделать, чтобы формула выдавала всю строку, но неверные символы закрашивались красным цветом
- невозможно в принципе.
Макросом сделать можно - см. ссылку от Pelena

Автор - Hugo
Дата добавления - 13.03.2015 в 13:13
makao Дата: Пятница, 13.03.2015, 14:02 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Hugo,

А вариант, чтобы в формуле WrongWords слово красилось в красный цвет возможен?
 
Ответить
СообщениеHugo,

А вариант, чтобы в формуле WrongWords слово красилось в красный цвет возможен?

Автор - makao
Дата добавления - 13.03.2015 в 14:02
Hugo Дата: Пятница, 13.03.2015, 14:11 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Нет. Формулы только возвращают значение, без форматов, и не могут менять формат ячейки.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНет. Формулы только возвращают значение, без форматов, и не могут менять формат ячейки.

Автор - Hugo
Дата добавления - 13.03.2015 в 14:11
makao Дата: Пятница, 13.03.2015, 14:38 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Hugo, Pelena,

Спасибо. Я тогда как и советует Пелена переработаю макрос с гового решения под свои нужды.
 
Ответить
СообщениеHugo, Pelena,

Спасибо. Я тогда как и советует Пелена переработаю макрос с гового решения под свои нужды.

Автор - makao
Дата добавления - 13.03.2015 в 14:38
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение Англ букв в Русском тексте и наоботор с раскраской (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!