Я пытался изменить блестящий пример с here с небольшим успехом. В документе MSWord мне нужно найти текст, например <<TEST>>
, и восстановить строку, найденную между <<
и >>
, которая вернет TEST
. В конечном итоге я намереваюсь использовать это, чтобы найти значение против TEST
и вернуть строку, которая будет заменена в документе Word. то есть. <<TEST>>
будет FRED
например.Найти/заменить текст, используя строку, найденную в документе Word
Sub Sample()
Dim c As Range
Dim StartWord As String, EndWord As String, TheWord As String
StartWord = "<<": EndWord = ">>"
Set c = ActiveDocument.Content
c.Find.ClearFormatting
c.Find.Replacement.ClearFormatting
With c.Find
.Text = "[\<]{2}*[\>]{2}"
'.Replacement.Text = TheWord
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
c.Find.Execute
While c.Find.Found
Debug.Print c.Text
TheWord = Replace(Replace(c.Text, StartWord, ""), EndWord, "")
Debug.Print TheWord
c.Find.Replacement.Text = TheWord
' Future something here to lookup value based on 'TheWord'
c.Find.Execute Replace:=wdReplaceOne
Wend
End Sub
На данный момент, я просто пытаюсь заменить эти слова, как <<TEST>>
, которые встречаются с строки, найденной внутри. Хотя он найдет и заменит первый экземпляр текста, соответствующего шаблону, он не найдет других, подобных example.
Спасибо.