把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)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- Inputbox输入密码打开查...(12.23)
- 【Access Dsum示例】...(12.16)
- Inputbox输入密码打开窗...(12.13)
- 【Access DCount示...(12.02)

学习心得
最新文章
- 用Access查询语句如何得到前3...(02.17)
- Access快速开发平台--导入导...(02.14)
- 按回车键后光标移动到下一条记录的V...(02.12)
- Access快速开发平台--要实现...(02.10)
- Access快速开发平台--让Pe...(02.08)
- 【Access Dsum示例】用D...(02.07)
- Access对子窗体的数据进行平均...(02.05)
- Access快速开发平台附件上传,...(01.18)
- 【IIF函数示例】用iif函数判断...(01.18)
- Access快速开发平台--如何获...(01.17)