Vba 如何将word文档中的所有表格导出到单独的excel工作表

Vba 如何将word文档中的所有表格导出到单独的excel工作表,vba,excel,ms-word,Vba,Excel,Ms Word,VBA新手,下面是我的word VBA代码,用于尝试读取word文档中的所有表格以分离excel工作表(每个表格一个)。我在第行得到一个错误: WS.Cells(i, j) = myTable.Cell(i, j) 说: 请求的集合成员不存在 经过一些故障排除之后,问题似乎出现在myTable.Cell(i,j)上,但每个表的大小调整都应该解决这个问题。。。?想法、建议?谢谢 Sub ReadTablesToExcel() Dim myTable As Table Dim RowsCount

VBA新手,下面是我的word VBA代码,用于尝试读取word文档中的所有表格以分离excel工作表(每个表格一个)。我在第行得到一个错误:

WS.Cells(i, j) = myTable.Cell(i, j)
说:

请求的集合成员不存在

经过一些故障排除之后,问题似乎出现在myTable.Cell(i,j)上,但每个表的大小调整都应该解决这个问题。。。?想法、建议?谢谢

Sub ReadTablesToExcel()
Dim myTable As Table
Dim RowsCount As Integer
Dim ColumnsCount As Integer
Dim oExcel As Object
Set oExcel = CreateObject("Excel.Application")
Dim oExcel1 As Object
Set oExcel1 = oExcel.Workbooks.Open("C:\Users\Mike\Desktop\Book3.xlsx")
    For Each myTable In ActiveDocument.Tables
    Dim WS As Object
    Set WS = oExcel1.Activesheet
        RowsCount = myTable.Rows.Count
        ColumnsCount = myTable.Columns.Count
        For i = 1 To RowsCount
            For j = 1 To ColumnsCount
                WS.Cells(i, j) = myTable.Cell(i, j)
            Next j
        Next i
    Next myTable
ActiveDocument.Repaginate
End Sub

您的代码可以在运行时不会抛出错误。ı只添加了代码,即为每个表添加新表

这是有效的:(WindowsXP,Office2007)


谢谢作品很棒:)
Sub ReadTablesToExcel()
    Dim myTable As Table
    Dim RowsCount As Integer
    Dim ColumnsCount As Integer
    Dim oExcel As Object
    Set oExcel = CreateObject("Excel.Application")
    Dim oExcel1 As Object
    Set oExcel1 = oExcel.Workbooks.Open("C:\Users\Mike\Desktop\Book3.xlsx")

    For Each myTable In ActiveDocument.Tables

        Dim WS As Object
        oExcel1.Sheets.Add
        Set WS = oExcel1.ActiveSheet

        RowsCount = myTable.Rows.Count
        ColumnsCount = myTable.Columns.Count

        For i = 1 To RowsCount
            For j = 1 To ColumnsCount
                WS.Cells(i, j) = myTable.Cell(i, j)
            Next j
        Next i

    Next myTable

    oExcel1.Close (True) 'Closes the workbook by saving changes.
    Set oExcel1 = Nothing
    ActiveDocument.Repaginate

End Sub