Замена из Excel в Worde VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день. Делаю скриптик для заполнения шаблона word данными из excel. На данный момент не получается выполнить замену в колонтитуле. Скрипт имеет такой код
Листинг программы
  1. Sub Zamena3()
  2. Dim wdApp As Object
  3. Dim wdDoc As Object
  4. Set wdApp = CreateObject("Word.Application")
  5. Dim lngA As Long
  6. lngA = Cells(Rows.Count, 1).End(xlUp).Row 'Последняя заполненная ячейка
  7. filepath = ActiveWorkbook.Path & "\Документ1.doc"
  8. If Dir(filepath) <> "" Then
  9. Set wdDoc = wdApp.Documents.Open(filepath)
  10. ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
  11. Selection.Find.ClearFormatting
  12. Selection.Find.Replacement.ClearFormatting
  13. With Selection.Find
  14. .Text = "{Метка}"
  15. .Replacement.Text = "Текст"
  16. .Forward = True
  17. .Wrap = wdFindContinue
  18. .Format = False
  19. .MatchCase = False
  20. .MatchWholeWord = False
  21. .MatchWildcards = False
  22. .MatchSoundsLike = False
  23. .MatchAllWordForms = False
  24. End With
  25. ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
  26. MsgBox "Замена завершена"
  27. End If
  28. wdDoc.Save
  29. wdDoc.Close
  30. End Sub
После выполнения скрипта замена не производится. Excel зависает

Решение задачи: «Замена из Excel в Worde VBA»

textual
Листинг программы
  1. Sub Zamena()
  2.  Dim wdApp As Object
  3.  Dim wdDoc As Object
  4.  Set wdApp = CreateObject("Word.Application")
  5.  Dim lngA As Long
  6.  
  7.  lngA = Cells(Rows.Count, 1).End(xlUp).Row 'Последняя заполненная ячейка
  8. filepath = ActiveWorkbook.Path & "\Документ1.doc"
  9.  If Dir(filepath) <> "" Then
  10.     Set wdDoc = wdApp.Documents.Open(filepath)
  11.     For x = 2 To lngA
  12.         If IsEmpty(Cells(x, 1)) = False Then
  13.            wdDoc.StoryRanges(9).Find.Execute Cells(x, 1).Value, False, False, False, False, False, True, 1, False, Cells(x, 2).Value, 2
  14.            wdDoc.Content.Find.Execute Cells(x, 1).Value, False, False, False, False, False, True, 1, False, Cells(x, 2).Value, 2
  15.         End If
  16.     Next x
  17.     wdDoc.Close True
  18.  End If
  19.  
  20.  wdApp.Quit
  21. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут