VBA:word表格导入excel

爬文爬到的:原地址https://stackoverflow.com/questions/4465212/macro-to-export-ms-word-tables-to-excel-sheets
上述链接里:1.单个doc中1个table处理,2.单个doc中多个table处理,3.单个docx中的table处理。这里我只引用了程序2,感兴趣的话请直接参考原文!!!!!!
https://blog.csdn.net/u012236241/article/details/80426945 
                    配合讲word里的表格合并和在一个word里,可以实现批量处理word中的表格,转换成一个大的excel。
Option Explicit

Sub ImportWordTable()

Dim wdDoc As Object
Dim wdFileName As Variant
Dim tableNo As Integer 'table number in Word
Dim iRow As Long 'row index in Excel
Dim iCol As Integer 'column index in Excel
Dim resultRow As Long
Dim tableStart As Integer
Dim tableTot As Integer

On Error Resume Next

ActiveSheet.Range("A:AZ").ClearContents

wdFileName = Application.GetOpenFilename("Word files (*.doc),*.doc", , _
"Browse for file containing table to be imported")

If wdFileName = False Then Exit Sub '(user cancelled import file browser)

Set wdDoc = GetObject(wdFileName) 'open Word file

With wdDoc
    tableNo = wdDoc.tables.Count
    tableTot = wdDoc.tables.Count
    If tableNo = 0 Then
        MsgBox "This document contains no tables", _
        vbExclamation, "Import Word Table"
    ElseIf tableNo > 1 Then
        tableNo = InputBox("This Word document contains " & tableNo & " tables." & vbCrLf & _
        "Enter the table to start from", "Import Word Table", "1")
    End If

    resultRow = 4

    For tableStart = 1 To tableTot       '这个表示从第几个表格开始处理
        With .tables(tableStart)
            'copy cell contents from Word table cells to Excel cells
            For iRow = 1 To .Rows.Count          '第几行表格开始处理
                For iCol = 1 To .Columns.Count                      
                    Cells(resultRow, iCol) = WorksheetFunction.Clean(.cell(iRow, iCol).Range.Text)
                Next iCol
                resultRow = resultRow + 1
            Next iRow
        End With
        resultRow = resultRow + 1              '写到excel的数据,+1就是表格间空一行
    Next tableStart
End With

End Sub
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用VBA编写代码将Word表格导入Excel中。具体步骤如下: 1. 打开Word文档,选择要导入表格。 2. 在Word中按下Alt+F11打开VBA编辑器。 3. 在VBA编辑器中插入一个新的模块。 4. 在新的模块中编写代码,使用Word对象模型中的Table对象和Excel对象模型中的Worksheet对象来实现表格导入。 5. 运行代码,将表格导入Excel中。 需要注意的是,导入表格时需要考虑表格的格式和数据类型,以确保导入的数据准确无误。 ### 回答2: 在VBA中将Word表格导入Excel可以通过使用Microsoft Word和Microsoft Excel对象库来实现。 首先,需要打开Word文档并选择需要导入表格。通过以下代码可以打开Word文档并选择表格: ``` Sub ImportWordTable() Dim WordApp As Object Dim WordDoc As Object Dim WordTable As Object Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("C:\Users\example.docx") Set WordTable = WordDoc.Tables(1) '此时选定了第一个表格 '以下可以指定具体的某个单元格的值 'WordTable.Cell(1, 1).Range.Text End Sub ``` 接下来,需要将选择的表格中的数据逐行逐列地提取出来,并在Excel中创建一个新的工作簿和工作表来放置这些数据。通过以下代码可以在Excel中创建新工作簿和工作表: ``` Sub ImportWordTable() Dim WordApp As Object Dim WordDoc As Object Dim WordTable As Object Dim ExcelApp As Object Dim ExcelBook As Object Dim ExcelSheet As Object Dim i As Integer Dim j As Integer Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("C:\Users\example.docx") Set WordTable = WordDoc.Tables(1) '此时选定了第一个表格 Set ExcelApp = CreateObject("Excel.Application") Set ExcelBook = ExcelApp.Workbooks.Add() Set ExcelSheet = ExcelBook.Worksheets(1) End Sub ``` 然后,需要使用循环来按行和列的顺序将表格中的数据提取到Excel工作表中。可以使用以下代码来实现: ``` Sub ImportWordTable() Dim WordApp As Object Dim WordDoc As Object Dim WordTable As Object Dim ExcelApp As Object Dim ExcelBook As Object Dim ExcelSheet As Object Dim i As Integer Dim j As Integer Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("C:\Users\example.docx") Set WordTable = WordDoc.Tables(1) '此时选定了第一个表格 Set ExcelApp = CreateObject("Excel.Application") Set ExcelBook = ExcelApp.Workbooks.Add() Set ExcelSheet = ExcelBook.Worksheets(1) For i = 1 To WordTable.Rows.Count For j = 1 To WordTable.Columns.Count ExcelSheet.Cells(i, j) = WordTable.Cell(i, j).Range.Text Next j Next i End Sub ``` 最后,需要关闭Word文档和Excel工作簿,并释放所有对象。可以使用以下代码实现: ``` Sub ImportWordTable() Dim WordApp As Object Dim WordDoc As Object Dim WordTable As Object Dim ExcelApp As Object Dim ExcelBook As Object Dim ExcelSheet As Object Dim i As Integer Dim j As Integer Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("C:\Users\example.docx") Set WordTable = WordDoc.Tables(1) '此时选定了第一个表格 Set ExcelApp = CreateObject("Excel.Application") Set ExcelBook = ExcelApp.Workbooks.Add() Set ExcelSheet = ExcelBook.Worksheets(1) For i = 1 To WordTable.Rows.Count For j = 1 To WordTable.Columns.Count ExcelSheet.Cells(i, j) = WordTable.Cell(i, j).Range.Text Next j Next i WordDoc.Close WordApp.Quit ExcelBook.SaveAs("C:\Users\example.xlsx") ExcelBook.Close ExcelApp.Quit Set WordDoc = Nothing Set WordApp = Nothing Set WordTable = Nothing Set ExcelSheet = Nothing Set ExcelBook = Nothing Set ExcelApp = Nothing End Sub ``` 通过以上代码,可以将Word文档中的表格数据成功导入Excel工作表中。需要注意的是,需要进行正确配置可以确保成功运行此代码,并及时更改相应的文件路径。 ### 回答3: 在VBA中将Word表格导入Excel是一项非常有用的操作,它可以帮助你快速地将Word中的数据转移到Excel里面,从而进行更方便的处理。 下面是这个过程具体的步骤: 1. 打开需要导入Word文档,选择需要导入表格。 2. 打开Excel文档,并在新建的模块中添加以下代码: Sub ImportWordTableInExcel() Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim TableNo As Integer '表格序号 Dim iRow As Long '行号 Dim iCol As Integer '列号 Set WordApp = CreateObject("Word.Application") '打开Word应用程序 WordApp.Visible = True '设置可见性 Set WordDoc = WordApp.Documents.Open(Filename:="C:\Users\johnDoe\Documents\example.docx", _ ReadOnly:=True) '打开Word文档 TableNo = WordDoc.Tables.Count '获取表格数 For Each tbl In WordDoc.Tables '循环遍历每个表格 For iRow = 1 To tbl.Rows.Count '循环遍历每行 For iCol = 1 To tbl.Columns.Count '循环遍历每列 ThisWorkbook.Worksheets(1).Cells(iRow, iCol) = _ Application.Clean(tbl.Cell(iRow, iCol).Range.Text) '将单元格中的文本导入Excel中 Next iCol '进入下一列 Next iRow '进入下一行 Next tbl '进入下一个表格 WordDoc.Close '关闭Word文档 WordApp.Quit '关闭Word应用程序 End Sub 3. 保存并运行宏,即可将Word中的表格数据导入Excel中。在导入完成后,你可以根据需要对Excel文档进行进一步的处理。 总的来说,通过VBAWord表格导入Excel可以大大节省你的时间和精力,同时还可以减少数据输入过程中的错误。希望这份回答可以帮助你更好地掌握这项技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值