2016-01-11 4 views
0

Возможно ли заменить текст, который был найден с помощью подстановочного знака, и заменить его также подстановочным знаком? например, FindText:="(^13{2}*^13)", Forward:=True, MatchWildcards:=True,, затем замените его подстановочным знаком replacewith:="(^13{2}*^11)". Является ли это возможным?VBA MS-Word: возможно ли заменить текст на подстановочный знак?

+0

Не совсем уверен, но что возвращает находка? Возвращает ли он что-либо отношение к позиции в документе, например, excel возвращает диапазон при использовании find? –

+0

вот пример, он вернет что-то вроде этого «^ p^psomethingword^p», он выберет его. – codiplex

+0

«^ p» - это возврат каретки « – codiplex

ответ

1

Вся дискуссия в комментариях неясно, но я понимаю, что вам нужно заменить только часть поискового термина, и сохранить другую часть. Да, это возможно, определяя выражения в поисковом выражении. Например:

найти: "(^ 13 {2} *)^13" Заменить: \ 1^11

Выражение определяется с помощью круглых скобок. Вы можете иметь несколько выражений в тексте «Найти». Обратитесь к выражению и используйте Word в замене с помощью индекса обратной косой черты +, где index - это число (местоположение) выражения в тексте Find. В приведенном выше примере, взятом из вашего вопроса, есть одно выражение, поэтому \ 1.

+0

Wow! точный ответ, который я искал. Большое спасибо за то, что поняли, что мой вопрос кристально чист. Я не знал, что могу определить несколько выражений с помощью «()» и называть это использованием индекса в replac е часть. Вы правы в обсуждении в комментарии, это так неуместно и почти не связано. Еще раз спасибо за понимание моего вопроса. – codiplex

-1

Я не разработчик слов, а просто сделал это, а не полное решение, но хорошая отправная точка ??? : Текст был «Натан тестирования Nathan тестирования»

 dim x as find  

    Selection.WholeStory 

      Set x = Selection.Find 
x.Find.ClearFormatting 
      x.Find.Replacement.ClearFormatting 
      With x 
       .Text = "Na*han" 
       .Replacement.Text = .Text 
       .Forward = True 
       .Wrap = wdFindAsk 
       .Format = False 
       .MatchCase = False 
       .MatchWholeWord = False 
       .MatchAllWordForms = False 
       .MatchSoundsLike = False 
       .MatchWildcards = True 
      End With 

      x.Execute 
      x.Execute Replace:=wdReplaceOne 
Смежные вопросы