Пожалуйста, помогите !!!
У меня есть макрос VBA для Microsoft Word, который я пытаюсь исправить.Цель макроса - сопоставить совпадения со всем, что находится внутри двойных фигурных скобок {{что угодно}}, однако фигурные скобки должны быть открыты и закрыты в одной строке.После того, как у меня совпадение, мне нужно иметь возможность применить изменения формата, стиля, цвета и т. Д. И применить некоторые другие изменения выбранного текста.
.Док, в котором мне нужно искать, содержит таблицы, рисовать текстовое поле и другиеобъекты, поэтому я хотел бы использовать обычный поиск по слову MS.
Пример:
{{1,000.00}} match (1)
{{Interesting}} match (1)
{{Within}} match (1)
{{1’100.00’}} match (1)
**{{01A10}} {{01A10}}** match (2) twice
{{ 1 }} match (1)
{{10-}} {{-10}} match (2) twice
[[1252}} No match (0)
{{8888888.99 No match (0), because close curly braces are in a new line
}}
{{}} match (1)
{{1’000’000.05}} match (1)
{{ No match (0)
}} No match (0)
Я пробовал это "[{] {2} <*> [}] {2} "но это не работает, это приводит к нежелательному результату.любая помощь будет очень признателен.
Прокат это мой код:
Sub GetTotalReport()
Dim totalReport As Double
Dim placeHolderRep As Variant
Dim placeHolder As Variant
ActiveDocument.Select
totalReport = 0#
Selection.Find.ClearFormatting
With Selection.Find
.Text = "[\{]{2}<*>[\}]{2}"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
Do While .Execute
With Selection
.Font.Italic = True
.Font.Bold = True
If Not .Text = "" Then
placeHolderRep = Mid(.Text, 3, Len(.Text) - 4)
.Text = placeHolderRep
placeHolder = placeHolderRep
placeHolder = Replace(Replace(Replace(placeHolder, ",", ""), "'", ""), "’", "")
totalReport = totalReport + Val(placeHolder)
End If
End With
Loop
End With
End Sub