Заполнить файл Excel из таблиц документов Word - VBA - PullRequest
0 голосов
/ 13 февраля 2019

Я довольно новичок в VBA и пытаюсь заполнить существующий документ Excel на основе документов Word.

Документы Word будут иметь три таблицы, а определенные ячейки станут столбцами Excel.Идея заключается в том, что каждый день появляются новые информационные листы о продуктах, и необходимо приложить лист Excel.Я начал с просмотра этого ранее заданного вопроса.Создать ли таблицу Excel с поддержкой макросов и запустить ее из Excel?Могу ли я заставить макрос искать внутри каталога для документов word и выполнять итеративный макрос?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Как насчет этого?

Sub ImportFromWord()

Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document

Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True

Set wrdDoc = wrdApp.Documents.Open(ThisWorkbook.Path & "\My document.doc")
'Use below line if document is already open.
'Set wrdDoc = Documents("My document.doc")

With wrdDoc

    N_Of_tbles = .Tables.Count

    If N_Of_tbles = 0 Then
        MsgBox "There are no tables in word document"
    End If

    Set wrdTbl = .Tables(1)

    ColCount = wrdTbl.Columns.Count
    RowCount = wrdTbl.Rows.Count


    ' Loop through each row of the table
    For i = 1 To RowCount
        'Loop through each column of that row
        For j = 1 To ColCount
            'This gives you the cell contents
            Worksheets("sheet1").Cells(i, j) = wrdTbl.Cell(i, j).Range.Text
        Next j
    Next i
End With

Set wrdDoc = Nothing
Set wrdApp = Nothing

MsgBox "completed"

End Sub
0 голосов
/ 13 февраля 2019

Это самое простое решение.В Excel установите ссылку на Word в VB Editor с помощью Tools, References - вы можете написать код для манипулирования Word из Excel.Вы можете использовать ключевое слово DIR для поиска файлов в папке, затем объявить объект Word, открыть документ word, выполнить итерации по таблицам в документе и скопировать значения в нужные ячейки в Excel.Просто следите за символом ^ p, который Word вставляет в ячейки - я стремлюсь вывести содержимое ячейки слова в строковую переменную, а затем беру Left (s, len (s) -1) в excel, чтобы сбросить последний символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...