把WORD表格数据复制粘贴到EXCEL工作表
时 间:2017-11-22 22:31:11
作 者:林岚 ID:3651 城市:中卫
摘 要:在EXCEL中用VBA操作WORD表格,如果WORD文档中有多个格式完全相同的表格、或者表格数据庞大,那么逐个单元格读取可能花费时间很长,所以考虑用复制/粘贴的办法把整个(或多个)表格数据复制后粘贴到当前工作表,以求尽可能的提高速度,用较少时间来解决要解决的问题。
【问题】
与被操作工作簿保存位置相同的文件夹“WORD表格”中的文档“111多.doc”中有多个表格,把这多个表格数据复制粘贴到当前工作表A1起始的单元格区域(工作表第一行是标题行)。
正 文:
Sub把WORD文档中多个表格数据复制粘贴到当前工作表()
Application.ScreenUpdating = False '关闭屏幕刷新
开始时间 = Timer '秒
ActiveSheet.Cells.ClearContents '清除表中已有的数据内容
wjM = ThisWorkbook.Path & "\WORD表格\111多.doc"
Set wDoc = CreateObject(wjM) '定义Word对象
bgS = wDoc.Tables.Count '文档中的表格个数
For g = 1 To bgS
Set wTable = wDoc.Tables(g) '定义表格对象
hs = wTable.Rows.Count '计算表格总行数
ls = wTable.Columns.Count '计算表格总列数
If g = 1 Then
wDoc.Range(wTable.Cell(1, 1).Range.Start, wTable.Cell(hs, ls).Range.End).Select '选中表格
wDoc.ActiveWindow.Selection.Copy '复制表格
With ActiveSheet '当前工作表
.Range("D:E").NumberFormatLocal = "@"'文本格式
.Cells(1, 1).Select '选中第一个单元格
.PasteSpecial Format:="Unicode 文本" '选择为文本(或Unicode 文本)方式粘贴
End With
ElseIf g > 1 Then
wDoc.Range(wTable.Cell(2, 1).Range.Start, wTable.Cell(hs, ls).Range.End).Select '选中表格第2行到最后一行
wDoc.ActiveWindow.Selection.Copy '复制表格
With ActiveSheet '当前工作表
xrH = .UsedRange.Rows.Count + 1'写入数据的起始行数
.Cells(xrH, 1).Select '选中第一个单元格
.PasteSpecial Format:="Unicode 文本" '选择为文本(或Unicode 文本)方式粘贴
End With
End If
Next g
With ActiveSheet '当前工作表
.Cells.EntireColumn.AutoFit '自动调整列宽
.Cells(1, 1).Select
End With
wDoc.Close '关闭文档
Set wTable = Nothing '释放表格对象变量存储空间
Set wDoc = Nothing '释放文档对象变量存储空间
MsgBox Chr(10) & "成功复制粘贴文件 " & Dir(wjM) & " 中 " & bgS & " 个表格数据到当前工作表" _
& Chr(10) & Chr(10) & "复制粘贴数据共用 " & Timer - 开始时间 & " 秒", , "复制粘贴WORD多表格数据"
Application.ScreenUpdating = False '关闭屏幕刷新
End Sub
说明:
格式完全相同的多表格复制粘贴到EXCEL工作表,第一个表格整个复制粘贴。第二个表格开始,复制粘贴第二行到最后一行数据区域即可。
根据实际表格数据情况,诸如0打头的数字及身份证号码列,在EXCEL中应该设置对应列为文本格式,否则会出现数据损失,不能完整显示。
如果被操作的WORD文档中只有一个表格,上面的代码仍然适用!
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)