Автор Тема: Word VBA Макросы: Выделить несколько слов без пробелов.  (Прочитано 348 раз)

Оффлайн MaryK

  • Посетитель форума
  • Сообщений: 4
Есть несколько выделенных слов в предложении. Как сузить выделенный фрагмент, чтобы он захватывал только буквы в конце?
Например: Сегодня жарко_ (тут выделен текст со знаком _)
или
Сегодня жарко  : (тут выделен текст с двумя пробелами и со знаком :)
Нужно, чтобы последнее, что захватывало выделение, была буква "о" в слове "жарко", получится выделенный фрагмент "Сегодня жарко"

Вообще, мне нужно скопировать в переменную только выделенную часть текста, начинающуюся и оканчивающуюся буквами (без пробелов, знаков препинания, разных других символов кроме букв).

Оффлайн Администратор

  • Administrator
  • Сообщений: 1637
Re: Выделить несколько слов без пробелов
« Ответ #1 : 21 Август 2018, 15:42 »
Макрос работает для русского и английского языков.

Макрос
Sub макрос()

    Dim rng As Range
   
   
    ' Присваиваем выделенному фрагменту имя 'rng'. Далее в коде будем
        ' обращаться к выделенному фрагменту по имени 'rng'.
        ' Может быть так будет удобнее писать и читать код.
    Set rng = Selection.Range.Duplicate
   
    Do
   
        ' Если последний символ во фрагменте 'rng' русская или английская буква, то выход из цикла.
        If rng.Characters.Last.text Like "[А-Яа-яЁёA-Za-z]" Then
            Exit Do
        End If
       
        ' Уменьшаем выделение на один символ.
        rng.End = rng.End - 1
       
        ' Если конец и начало фрагмента совпали, то выход из цикла.
        If rng.End = rng.Start Then
            Exit Do
        End If
       
    Loop
   
    ' Выделение фрагмента 'rng'.
    rng.Select

End Sub

Оффлайн Администратор

  • Administrator
  • Сообщений: 1637
Да, не обязательно это делать в ворде, если вам надо это не в самом файле, а в другом месте, например, в переменной.

Оффлайн MaryK

  • Посетитель форума
  • Сообщений: 4
Большое спасибо!