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