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

Вход

Регистрация

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

 

= Мир MS Excel/Выделение слов в ячейке - на определенном расстоянии. - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выделение слов в ячейке - на определенном расстоянии.
RipVanWinkel Дата: Вторник, 06.06.2017, 12:28 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, уважаемые специалисты по экселю.
Помогите решить вопрос.

У меня есть макрос выделения слов в текстовой ячейке C18.
В настоящий момент в ячейке C18 - выделяются все встречающиеся заданные слова.
Макрос срабатывает на событие Worksheet_Change - в ячейках D16 и E16 - куда записываются слова, которые надо выделить.

Как изменить макрос, чтобы он выделял два слова "день" и "вечер", но при условии, что расстояние между этими словами - не более 4 символов.
(если два одинаковых слова стоят рядом - например "вечер - вечер" - то они не должны выделяться, поскольку - это одинаковые слова)
К сообщению приложен файл: 5752739.xlsm (16.3 Kb)


Сообщение отредактировал RipVanWinkel - Вторник, 06.06.2017, 12:30
 
Ответить
СообщениеДобрый день, уважаемые специалисты по экселю.
Помогите решить вопрос.

У меня есть макрос выделения слов в текстовой ячейке C18.
В настоящий момент в ячейке C18 - выделяются все встречающиеся заданные слова.
Макрос срабатывает на событие Worksheet_Change - в ячейках D16 и E16 - куда записываются слова, которые надо выделить.

Как изменить макрос, чтобы он выделял два слова "день" и "вечер", но при условии, что расстояние между этими словами - не более 4 символов.
(если два одинаковых слова стоят рядом - например "вечер - вечер" - то они не должны выделяться, поскольку - это одинаковые слова)

Автор - RipVanWinkel
Дата добавления - 06.06.2017 в 12:28
RAN Дата: Вторник, 06.06.2017, 14:20 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub Мяу()
    Dim objRegExp As Object, oMath As Object
    Dim s$, i&
    Set objRegExp = CreateObject("VBScript.RegExp")
    objRegExp.Global = True: objRegExp.IgnoreCase = True: objRegExp.MultiLine = False
    objRegExp.Pattern = "день[\s\S]{1,4}вечер"
    s = Selection.Value
    If objRegExp.test(s) Then
        Set oMath = objRegExp.Execute(s)
        For i = 0 To oMath.Count - 1
            Selection.Characters(Start:=oMath(i).Firstindex + 1, Length:=Len(oMath(i))).Font.ColorIndex = 3
        Next
    End If
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub Мяу()
    Dim objRegExp As Object, oMath As Object
    Dim s$, i&
    Set objRegExp = CreateObject("VBScript.RegExp")
    objRegExp.Global = True: objRegExp.IgnoreCase = True: objRegExp.MultiLine = False
    objRegExp.Pattern = "день[\s\S]{1,4}вечер"
    s = Selection.Value
    If objRegExp.test(s) Then
        Set oMath = objRegExp.Execute(s)
        For i = 0 To oMath.Count - 1
            Selection.Characters(Start:=oMath(i).Firstindex + 1, Length:=Len(oMath(i))).Font.ColorIndex = 3
        Next
    End If
End Sub
[/vba]

Автор - RAN
Дата добавления - 06.06.2017 в 14:20
Kuzmich Дата: Вторник, 06.06.2017, 14:21 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 717
Репутация: 159 ±
Замечаний: 0% ±

Excel 2003
Всегда ли два слова "день" и "вечер" встречаются в ячейке парами?
 
Ответить
СообщениеВсегда ли два слова "день" и "вечер" встречаются в ячейке парами?

Автор - Kuzmich
Дата добавления - 06.06.2017 в 14:21
RipVanWinkel Дата: Вторник, 06.06.2017, 15:06 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, не работает.
Выделяет слова - только если - слово "день" стоит первым.
Если слово "вечер" идет перед словом "день" - макрос никак на эту связку не реагирует.
К сообщению приложен файл: 5649669.xlsm (19.2 Kb)
 
Ответить
СообщениеRAN, не работает.
Выделяет слова - только если - слово "день" стоит первым.
Если слово "вечер" идет перед словом "день" - макрос никак на эту связку не реагирует.

Автор - RipVanWinkel
Дата добавления - 06.06.2017 в 15:06
RipVanWinkel Дата: Вторник, 06.06.2017, 15:07 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всегда ли два слова "день" и "вечер" встречаются в ячейке парами?

Нет, они могут идти кучей - "вечер, день, вечер, день, вечер, день".
Поскольку здесь расстояние между словами - меньше 4 символов - то выделить нужно всю эту связку.
 
Ответить
Сообщение
Всегда ли два слова "день" и "вечер" встречаются в ячейке парами?

Нет, они могут идти кучей - "вечер, день, вечер, день, вечер, день".
Поскольку здесь расстояние между словами - меньше 4 символов - то выделить нужно всю эту связку.

Автор - RipVanWinkel
Дата добавления - 06.06.2017 в 15:07
RAN Дата: Вторник, 06.06.2017, 17:50 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
    Dim sl1$, sl2$
    sl1 = "день"
    sl2 = "вечер"
    objRegExp.Pattern = sl1 & "[\s\S]{1,4}" & sl2 & "|" & sl2 & "[\s\S]{1,4}" & sl1
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
    Dim sl1$, sl2$
    sl1 = "день"
    sl2 = "вечер"
    objRegExp.Pattern = sl1 & "[\s\S]{1,4}" & sl2 & "|" & sl2 & "[\s\S]{1,4}" & sl1
[/vba]

Автор - RAN
Дата добавления - 06.06.2017 в 17:50
RipVanWinkel Дата: Вторник, 06.06.2017, 18:52 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, спасибо.
Все работает


Сообщение отредактировал RipVanWinkel - Вторник, 06.06.2017, 18:53
 
Ответить
СообщениеRAN, спасибо.
Все работает

Автор - RipVanWinkel
Дата добавления - 06.06.2017 в 18:52
  • Страница 1 из 1
  • 1
Поиск:

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