1

Тема: Найти одиночную букву в тексте, но не часть слова

Здравствуйте!
Подскажите как найти одиночную букву в тексте, допустим "п.", но так чтобы это была не последняя буква в крайнем слове предложения (например "циклоп."?
Пол рабочего дня потратил на гуглеш, но толкового решения так и не нашел(. Заранее спасибо!

2

Re: Найти одиночную букву в тексте, но не часть слова

MaDriver пишет:

Здравствуйте!
Подскажите как найти одиночную букву в тексте, допустим

Что с этим форумом?
Повторю:
Здравствуйте!
Подскажите как найти одиночную букву в тексте, допустим "п.", но так чтобы это была не последняя буква в крайнем слове предложения (например "циклоп."?
Пол рабочего дня потратил на гуглеш, но толкового решения так и не нашел(. Заранее спасибо!

3

Re: Найти одиночную букву в тексте, но не часть слова

MaDriver пишет:

...
Подскажите как найти одиночную букву в тексте, допустим "п.", но так чтобы это была не последняя буква в крайнем слове предложения (например "циклоп."?
...

Попробуйте перебрать все слова в целевом диапазоне. Если контекст в очередном слове обнаружен и это не последнее слово в предложении (последним "словом" в предложении с точки зрения коллекции Words всегда должна быть точка), то это искомый контекст, и тогда его нужно выделить (или еще как-то обработать). Вот пример (стартовая программа - t_SDTCATEOS).

Sub SelectDefiniteTrailingCharactersNotAtTheEndOfSentence(trailing_chars As String, rgs As range)
Dim sent As Object
Dim sent_wdc As Long
Dim wtchead As String
Dim wtc As String
Dim iwtchead As Long
Dim wtcfound As Boolean
Dim wtcrgsel As range
Dim iwd As Long

wtcfound = False
Set wtcrgsel = Selection.range
wtchead = trailing_chars
For Each sent In rgs.Sentences
    sent_wdc = sent.Words.count
    For iwd = 1 To sent_wdc
        wtc = Trim$(sent.Words(iwd).Text)
            iwtchead = InStr(wtc, wtchead)
            If iwtchead > 0 Then 'chars found in the word
                If Not (iwd = sent_wdc - 1) Then 'not last word in the sentence
                    wtcfound = True
                    wtcrgsel.SetRange Start:=sent.Words(iwd).Start + iwtchead - 1, _
                                        End:=sent.Words(iwd).Start + iwtchead - 1 + Len(wtchead)
                    wtcrgsel.Select
                    GoTo e_SDTCATEOS
                End If
            End If
    Next iwd
    O = 0
Next

e_SDTCATEOS:
If Not wtcfound Then
    MsgBox "Text '" & trailing_chars & "' is not found"
End If
End Sub
Sub t_SDTCATEOS()
SelectDefiniteTrailingCharactersNotAtTheEndOfSentence "п", Selection.range
End Sub