通过VBA将word中的表格导入到excel中
由于项目需要,需要将word中的表格按照格式导入到excel中,所以通过在word中写VBA程序的方式将word的内容导出到excel中。
1、添加“开发工具”选项卡
打开word(我的是office),点击左上角“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 StringwordFileName = Left$(ActiveDocument.Name, Len(ActiveDocument.Name) - 4) '获取当前文档名称,不包括后缀名'从Word中新建并打开一个Excel文件Dim ExcelApp As ObjectDim wk As ObjectApplication.ScreenUpdating = FalseSet 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、示例
有一个例子,可以去以下网址 /download/bailang_zhizun/10336439 下载