View Single Post
 
Old 01-18-2015, 06:40 AM
gmayor's Avatar
gmayor gmayor is offline Windows 7 64bit Office 2010 32bit
Expert
 
Join Date: Aug 2014
Posts: 4,137
gmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud of
Default

The following Word macro should work. Open the document with the tables and run the macro. You'll need to change the path (C:\Path) to the workbook:

Code:
Sub CopyTablesToExcel()
Dim xlApp As Object
Dim xlBook As Object
Dim oTable As Table
Dim NextRow As Long
Dim oCell As Range
Const strWorkBookName As String = "C:\Path\Story - Excel output.xlsx"
    On Error Resume Next
    Set xlApp = GetObject(, "Excel.Application")
    If Err Then
        Set xlApp = CreateObject("Excel.Application")
    End If
    On Error GoTo 0
    Set xlBook = xlApp.Workbooks.Open(Filename:=strWorkBookName)
    xlApp.Visible = True
    For Each oTable In ActiveDocument.Tables
        NextRow = xlBook.Sheets(1).Range("A" & xlBook.Sheets(1).Rows.Count).End(-4162).Row + 1
        Set oCell = oTable.Rows(1).Cells(2).Range
        oCell.End = oCell.End - 1
        xlBook.Sheets(1).Range("A" & NextRow) = oCell.Text
        Set oCell = oTable.Rows(2).Cells(2).Range
        oCell.End = oCell.End - 1
        xlBook.Sheets(1).Range("B" & NextRow) = oCell.Text
        Set oCell = oTable.Rows(3).Cells(2).Range
        oCell.End = oCell.End - 1
        xlBook.Sheets(1).Range("C" & NextRow) = oCell.Text
        xlBook.Save
    Next oTable
    Set xlApp = Nothing
    Set xlBook = Nothing
    Set oCell = Nothing
    Set oTable = Nothing
lbl_Exit:
    Exit Sub
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote