Привет всем и спасибо заранее за любые ответы;Условное замещение в Word Macro
Этот вопрос возникает при замене текста только при определенных условиях.
Предыстория: Я работаю над макросом для редакционного отдела академического учреждения. Они получают множество документов, которые имеют одинаковые проблемы, и попросили помочь сократить время, затрачиваемое на каждую из них.
Две вещи, которые они хотят:
- Если дефис между двумя цифрами, изменить его на ан-тире
- Изменение каждый амперсанд (&) к слову «и»
У меня есть RegExp, который находит и заменяет эти дефисы просто отлично, но я заметил проблему. Мой поиск/замена изменяет «отображаемый текст» гиперссылок. То же самое с амперсандами. Плохо. Так что я пытаюсь выяснить, как в исключить текст, который имеет Selection.Style = Word.ActiveDocument.Styles («Гиперссылка»)
BTW, что логический оператор «не равно»? Я пробовал <> и> <, но я всегда получаю сообщение об ошибке, указывающее, что выражение ожидается. Я новичок в VBA, поэтому, пожалуйста, простите вопрос новичка.
Это работает (часть гораздо большей подпрограмма):
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([0-9])-([0-9])"
.Replacement.Text = "\1" & Chr$(150) & "\2"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Так я могу создать If/Then заявление, чтобы сказать, чтобы заменить только если стиль не гиперссылке?
Еще раз спасибо, Рисса
P.S. Я искал похожие сообщения и нашел один, но на него никогда не отвечали.