Есть несколько выделенных слов в предложении. Как сузить выделенный фрагмент, чтобы он захватывал только буквы в конце?
Например: Сегодня жарко_ (тут выделен текст со знаком _)
или
Сегодня жарко : (тут выделен текст с двумя пробелами и со знаком :)
Нужно, чтобы последнее, что захватывало выделение, была буква "о" в слове "жарко", получится выделенный фрагмент "Сегодня жарко"
Вообще, мне нужно скопировать в переменную только выделенную часть текста, начинающуюся и оканчивающуюся буквами (без пробелов, знаков препинания, разных других символов кроме букв).
Макрос работает для русского и английского языков.
Макрос
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
Да, не обязательно это делать в ворде, если вам надо это не в самом файле, а в другом месте, например, в переменной.
Большое спасибо!