2014-10-28 2 views
0

Возможно ли рекурсивный поиск и замена для определенной строки в слове VBA-скрипт?Рекурсивный поиск и замена в слове VBA-скрипт

В частности, я хотел бы заменить все экземпляры «:» на «:».

Я экстенсивно искал, но ничего не нашел.

Я не прошу решения для кода, но указатель в правильном направлении или пример онлайн был бы фантастическим.

+0

Почему вы хотите, чтобы ваш поиск будет ** рекурсивный **? Selection.Find with Replace: = wdReplaceAll недостаточно? См. Http://msdn.microsoft.com/en-us/library/office/aa211953(v=office.11).aspx –

+0

Нет, вам не нужно, чтобы ваш поиск был рекурсивным. Эта ссылка должна помочь вам. –

+0

@ M.Page Использует Selection.Find с заменой: = wdReplaceВсе же эквивалент кнопки «Заменить все» в слове? Если это так, я бы просто запустил это в цикле вместо того, чтобы сделать его рекурсивным? Я не программист, но надеюсь, что я знаю достаточно, чтобы реализовать это. –

ответ

1

В Word, создать VBA макрос так:

Sub rem_space() 
    Set myRange = ActiveDocument.Content 
    With myRange.Find 
     .Text = " :" 
     .Replacement.Text = ":" 
     .Execute Replace:=wdReplaceAll, Forward:=True, _ 
      Wrap:=wdFindContinue 
    End With 
End Sub 
+0

Если вам нужно запустить макрос несколько раз, это, вероятно, потому, что у вас может быть несколько пробелов перед двоеточием. В этом случае выполните: для i = от 1 до 10: rem_space: next i (10 здесь просто пример). –

+0

Используйте подстановочные знаки, чтобы найти «{1,10}:» и замените его на «:» (не помещайте там кавычки) –

+0

@bibadia можете привести пример? –