Vba reads the contents of the footer from a text document

I need to get the content from the footer section of a dictionary document. I especially need to transfer the contents of the table inside the footer section to an excel document. I already did this with tables from the body section of a Word document. How can I get the contents of the footer section into another worksheet or be added to an existing worksheet with the contents of the main document?

    Sub ImportWordTable()
    Dim sPfad As String
    Dim appWord As Object
    Dim strDatei As String
    Dim TableNo As Integer 'table number in Word
    Dim iRow As Long 'row index in Word
    Dim jRow As Long 'row index in Excel
    Dim iCol As Integer 'column index in Excel
    sPfad = "C:\Users\tim\Test2\"    '<== adjust path
    Application.ScreenUpdating = False
    Set appWord = CreateObject("Word.Application")
    appWord.Visible = True
    strDatei = Dir(sPfad & "*.doc*")
    Do While strDatei <> ""
        appWord.Documents.Open sPfad & strDatei
        'Read all tables of the document body
        If appWord.ActiveDocument.tables.Count = 0 Then
            MsgBox "This document contains no tables", _
                vbExclamation, "Import Word Table"
        Else
            jRow = 0
            Sheets.Add after:=Sheets(Worksheets.Count)
            ActiveSheet.Name = strDatei & "Label-Text"
            For TableNo = 1 To appWord.ActiveDocument.tables.Count
                With appWord.ActiveDocument.tables(TableNo)
    'copy cell contents from Word table cells to Excel cells
                    For iRow = 1 To .Rows.Count
                        jRow = jRow + 1
                        For iCol = 1 To .Columns.Count
                            On Error Resume Next
                            ActiveSheet.Cells(jRow, iCol) = WorksheetFunction.Clean(.cell(iRow, iCol).Range.Text)
                            On Error GoTo 0
                        Next iCol
                    Next iRow
                End With
                jRow = jRow + 1
            Next TableNo
        End If
        appWord.ActiveDocument.Close savechanges:=False
        strDatei = Dir
    Loop
    appWord.Quit
    Set appWord = Nothing
End Sub
+4
source share
1 answer

To get the table in the footer, use:

appWord.ActiveDocument.Sections(1).Footers(1).Range.Tables.Count

and

With appWord.ActiveDocument.Sections(1).Footers(1).Range.Tables(TableNo)

ps. Footers(1)= Footers(wdHeaderFooterPrimary), but you don’t have this constant defined when driving a late binding word.

+4

Source: https://habr.com/ru/post/1675451/


All Articles