通过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的相关操作

扫描二维码关注公众号,回复: 1424285 查看本文章

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 下载

猜你喜欢

转载自blog.csdn.net/bailang_zhizun/article/details/79866671
今日推荐