Макрос, извлекающий реквизиты из документа в Word и вставляющий их в Excel - VBA

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

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

Здравствуйте, помогите написать макрос, который будет извлекать реквизиты компаний из присланных ими файлов и вставлять в excel каждый в свою строку (Полю An будет соответствовать поле Bn, в котором будут находиться изъятые данные). Список необходимых полей: A B ЗАКАЗЧИК Адрес местонахождения ИНН КПП БАНК Р/С БИК К/С Управляющий Спасибо за любую помощь.

Решение задачи: «Макрос, извлекающий реквизиты из документа в Word и вставляющий их в Excel»

textual
Листинг программы
  1. Option Explicit
  2. Sub m_1()
  3. Dim oExcel As Excel.Application
  4. Dim oWorkbook As Excel.Workbook
  5. Dim oWorksheet As Excel.Worksheet
  6. Dim vНомерСвободнойСтроки As Long
  7. If Tasks.Exists("Microsoft Excel") = True Then
  8.     MsgBox "Закройте Excel"
  9.     Exit Sub
  10. End If
  11. If Selection.Type = wdSelectionIP Then
  12.     MsgBox "Выделите заказчика"
  13.     Exit Sub
  14. End If
  15. Set oExcel = CreateObject("Excel.Application")
  16. Set oWorkbook = oExcel.Workbooks.Open("E:\_Рабочий стол\Вытягивание реквизитов.xls")
  17. Set oWorksheet = oWorkbook.Sheets("Лист1")
  18. oExcel.Visible = True
  19. vНомерСвободнойСтроки = oWorksheet.Cells.SpecialCells(xlLastCell).Row + 1
  20. oWorksheet.Range("A" & vНомерСвободнойСтроки) = Selection.Range
  21. With ActiveDocument.Range.Find
  22.     .Text = "ИНН"
  23.     .MatchWholeWord = True
  24.     .MatchCase = True
  25.     .Execute
  26.     If .Found = True Then
  27.         .Parent.Select
  28.         Selection.MoveEndUntil cset:="0123456789", Count:=wdForward
  29.         Selection.MoveRight unit:=wdCharacter, Count:=1
  30.         oWorksheet.Range("B" & vНомерСвободнойСтроки) = Selection.Words(1)
  31.     End If
  32. End With
  33. With ActiveDocument.Range.Find
  34.     .Text = "КПП"
  35.     .MatchWholeWord = True
  36.     .MatchCase = True
  37.     .Execute
  38.     If .Found = True Then
  39.         .Parent.Select
  40.         Selection.MoveEndUntil cset:="0123456789", Count:=wdForward
  41.         Selection.MoveRight unit:=wdCharacter, Count:=1
  42.         oWorksheet.Range("C" & vНомерСвободнойСтроки) = Selection.Words(1)
  43.     End If
  44. End With
  45. oWorkbook.Close SaveChanges:=wdSaveChanges
  46. oExcel.Quit
  47. Set oWorksheet = Nothing
  48. Set oWorkbook = Nothing
  49. Set oExcel = Nothing
  50. End Sub

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


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

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

6   голосов , оценка 4.333 из 5

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

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

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