У меня есть этот макрос, который может сделать массовый поиск и замену в нескольких словах документов. Я могу найти и заменить изображения (в заголовке), но когда я внедрил его в свой макрос-код, он просто игнорирует его и не находит и не заменяет изображения. Я не уверен, почему это так, поскольку ошибок нет. Любые советы будут с благодарностью. Спасибо!!

Sub FindandReplaceTextPic()
Dim Directory As String
Dim FType As String
Dim FName As String

Directory = "C:\Users\pieria\Desktop\TempPics"
FType = "*.docx"

ChDir Directory
FName = Dir(FType)
' for each file you find, run this loop
Do While FName <> ""
    ' open the file
    Documents.Open FileName:=Directory & "\" & FName

    ' search and replace the company name
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "CompanyA"
        .MatchCase = True
        .Replacement.Text = "CompanyB"
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
'search and replace picture from clipboard
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
   .Text = "^g"
   .Replacement.Text = "^c"
   .Forward = True
   .Wrap = wdFindContinue
   .Format = False
   .MatchCase = False
   .MatchWholeWord = False
   .MatchWildcards = False
   .MatchSoundsLike = False
   .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
    ' save and close the current document
    ActiveDocument.Close wdSaveChanges

    ' look for next matching file
    FName = Dir
Loop
End Sub

2 ответа2

0

Я бы перебрал все storyRange (включая заголовки) и использовал бы.Найдите метод диапазона вместо объекта выбора.

0

Как найти и заменить изображения в MS Word

MS-Word может помочь в приведенном выше сценарии. Существует автоматический способ найти все изображения в документе, а затем заменить их на новое изображение.

Обратите внимание, что этот метод найдет все изображения и заменит все новые. С помощью этого метода мы не можем быть избирательными по отношению к изображениям. Вот шаги:

  1. Откройте документ Microsoft Word, в котором необходимо выполнить замену.
  2. Вставьте новое изображение вверху документа.
  3. Выберите вновь вставленное изображение и нажмите Ctrl+C, чтобы скопировать его.
  4. Теперь удалите вновь вставленное изображение.
  5. Нажмите Ctrl+H, чтобы открыть окно «Найти и заменить».
  6. Поместите ^g в поле «Найти что» и ^c в поле «Заменить на»

Метод поиска всех изображений и замены их на новый.

Теперь нажмите кнопку «Заменить все», чтобы увидеть магию!

Все изображения были заменены в MS Word.

Вы увидите, что все изображения в документе будут заменены новым изображением. Конечно, операция замены также заменит изображения, которые вы не хотите заменять. В таком случае вам может понадобиться повторно вставить изображения, которые не подлежали замене. Этот метод полезен в сценарии, где:

  1. документ содержит только те изображения, которые должны быть заменены
  2. документ содержит большое количество изображений, которые необходимо заменить, и меньшее количество изображений, которые не следует заменять

Первый сценарий прост. Во втором сценарии вы будете выполнять намного меньше ручной работы, повторно вставляя изображения, которые были заменены как побочный эффект.

Метод работает путем замены всей графики (обозначается ^g) содержимым буфера обмена (обозначается ^c). Поэтому, по сути, вы можете заменить все изображения всем, что сможете скопировать в буфер обмена.

Чтобы сохранить нумерацию документа без изменений, вы должны использовать новое изображение того же размера.

Я надеюсь, что этот совет MS-Word был полезен для вас. Если у вас есть какие-либо вопросы по этой теме, пожалуйста, не стесняйтесь спрашивать меня через комментарии. Я постараюсь помочь вам. Спасибо за использование TechWelkin.

Статьи по теме для получения дополнительной информации:

  1. MS Word: как найти и заменить цифры, цифры, цифры
  2. Найти и заменить форматирование в MS-Word
  3. Многократный поиск и замена в MS Word с помощью макроса
  4. Заменить строку, абзац, разрыв каретки в MS Word
  5. Введите ° градусный символ в MS Word, HTML, Unicode
  6. MS Word: Как выбрать вертикальную прямоугольную область

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .