Я бы хотел найти текст в Microsoft Word и получить соседние слова.
Я хотел бы начать со слова и найти все слова до и после него.
Функция должна быть рекурсивной.
Например:
abc def ghi jkl mno def pqr stu wxy def
если я ищу строку «def», функция должна вернуть меня:
abc def ghi
mno def pqr
wxy def
это возможно?
спасибо!
Sub Cerca(Parola)
Dim rng1 As Range
Dim rng2 As Range
Dim rngFound As Range
Dim Prima As Integer
Dim Dopo As Integer
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
.Text = Parola
' .Replacement.Text = "Provo"
.Forward = True
.Wrap = wdFindStop
Do While .Execute() = True
Selection.MoveRight Unit:=wdWord, Count:=4
Set rng2 = Selection.Range
Selection.MoveLeft Unit:=wdWord, Count:=9
Set rng1 = Selection.Range
Prima = rng1.Start
Dopo = rng2.Start
Set rngFound = ActiveDocument.Range(Prima, Dopo)
strTheText = rngFound.Text
ScriviFile Parola & Chr(9) & strTheText
'Selection.Find.Replacement.Font.Italic = True
'Selection.Font.Bold = True
'Selection.MoveRight Unit:=wdCharacter, Count:=Dopo
' Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveRight Unit:=wdWord, Count:=9
Loop
End With
End Sub
Процедура, которую я опубликовал, не работает должным образом, потому что она также считает пунктуацию словами.
Я пытаюсь объяснить себя лучше ... Мне нужна функция, которая ищет в документе Microsoft Word строку и получает номер «x» слов перед и после строки, которую я передал. Например ....
function myGetMyListOfSearch(SearchString as string, PreviusWord as integer, NextWord as integer)
Эта функция возвращает мне список «строк» с моим «SearchString», окруженным терминами слева и справа от него ...
это возможно?