Я хотел бы найти текст, который находится между символами <и>, а затем превратить любой найденный текст в «нормальный» регистр, где первая буква слова пишется с большой буквы. Вот что у меня есть:
Function findTextBetweenCarots() As String
Dim strText As String
With Selection
.Find.Text = "<" ' what about <[^0-9]+> ?
.Find.Forward = True
.Find.Wrap = wdFindContinue
End With
Selection.Find.Execute
' Application.Selection. ' how do I get the text between the other ">"?
findCarotSymb = Application.Selection.Text
End Function
Или есть лучший способ сделать это? Я также подошел к проблеме, используя библиотеку VBScript Regex 5.5, которая работала с простыми документами, но не с определенными документами со сложными таблицами. Например, пытаясь просто выделить текст (для простоты):
Sub BoldUpperCaseWords()
Dim regEx, Match, Matches
Dim rngRange As Range
Set regEx = New RegExp
regEx.Pattern = "<[^0-9]+>"
regEx.IgnoreCase = False
regEx.Global = True
Set Matches = regEx.Execute(ActiveDocument.Range.Text)
For Each Match In Matches
ActiveDocument.Range(Match.FirstIndex, Match.FirstIndex + Len(Match.Value)).Bold = True
Next
End Sub
не будет работать в документе с таблицами. Фактически, он даже не выделил бы правильный текст (текст между <>
. Это заставляет меня поверить, что у меня есть более широкая проблема, которую я пропускаю.