通过VBA将word中的表格导入到excel中

通过VBA将word中的表格导入到excel中

    由于项目需要,需要将word中的表格按照格式导入到excel中,所以通过在word中写VBA程序的方式将word的内容导出到excel中。

1、添加“开发工具”选项卡

    打开word(我的是office2007),点击左上角“office 按钮”,点击“word选项”,打开如下图所示界面:


勾选“在功能区显示“开发工具”选项卡”

2、VBA编辑界面

    此时,在word界面上就会出现“开发工具”选项卡,点击该选项卡,然后点击“Visual Basic”,如下图所示:


此时,会弹出,VBA编辑界面,右键点击“Project(**)”,选择插入模块:


进入模块编辑界面

3、开始编辑

    关于VB的具体语法不再描述。只描述有关word和excel的相关操作

3.1、读取word中的表格

    由于是在word中编写vba程序,所以不需要获取word的相关对象,直接用ActiveDocument来代替

'获取文档中表格的数量
    tablesCount = ActiveDocument.Tables.Count
'获取excel的目录和文件名
    Dim wordFileName As String
    wordFileName = Left$(ActiveDocument.Name, Len(ActiveDocument.Name) - 4)         '获取当前文档名称,不包括后缀名
'从Word中新建并打开一个Excel文件
    Dim ExcelApp As Object
    Dim wk As Object
    Application.ScreenUpdating = False
    Set ExcelApp = CreateObject("Excel.Application")                                '打开一个Excel程序对象
    With ExcelApp
        .Visible = True                                                             '显示文件
        Set wk = ExcelApp.Workbooks.Add                                             '新建一个Excel文件
        wk.SaveAs FileName:=ThisDocument.path & "\" & wordFileName & "xlsx"         '设置新建Excel文件的路径和文件名
        ''导出内容''
    End With

    另外需要注意的是。如果想要在word中操作excel文件,需要在word的VBA编辑器中引入excel的库(比如:Microsoft Excel 12.0 Object Library)。引用方式是:点击VBA界面上的 工具->引用,弹出如下界面:


选中该库即可

3.2、将内容导出到excel

    要将内容导出到excel中,需要先获取word中的表格内容,然后再将内容导出到excel中。

'获取表格的行数,其中j表示第j个表格
 tableRowCount = ActiveDocument.Tables(j).Range.Rows.Count

'读取Word表格中对应单元格中的内容,其中 Cell(row, col) 表示的是表格中的第row行,第col列
 string = ActiveDocument.Tables(j).Cell(row, col).Range.Text

'将数据写入到excel表格中,Sheets(1)表示的是excel文件的第一个工作表,Range("A1")表示的是A1单元格,A表示列
 wk.Sheets(1).Range("A1").Value = string 
'wk.Sheets(1).Range("A" & row).Value = tFlagValue

*****

当数据输出完成之后,通过wk.Save来保存excel文件

4、示例

    有一个例子,可以去以下网址 https://download.csdn.net/download/bailang_zhizun/10336439 下载

  • 13
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用VBA编写代码将Word表格导入Excel。具体步骤如下: 1. 打开Word文档,选择要导入表格。 2. 在Word按下Alt+F11打开VBA编辑器。 3. 在VBA编辑器插入一个新的模块。 4. 在新的模块编写代码,使用Word对象模型的Table对象和Excel对象模型的Worksheet对象来实现表格导入。 5. 运行代码,将表格导入Excel。 需要注意的是,导入表格时需要考虑表格的格式和数据类型,以确保导入的数据准确无误。 ### 回答2: 在VBAWord表格导入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: 在VBAWord表格导入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可以大大节省你的时间和精力,同时还可以减少数据输入过程的错误。希望这份回答可以帮助你更好地掌握这项技能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值