感谢zhaogang1960与kevinchengcw两位老师的热情帮助,复制WORD所有内容至当前表中
时间:2011-08-07
来源:互联网
[ 本帖最后由 zslyyy 于 2011-8-7 22:37 编辑 ]
附件

2011-8-7 20:58, 下载次数: 24
作者: zslyyy 发布时间: 2011-08-07
Sub Macro1()
Dim f As String, t As Object, arr(1 To 60000, 1 To 10), i&, j&, m&
Application.ScreenUpdating = False
With CreateObject("WORD.APPLICATION")
.Visible = True
MyPath = ThisWorkbook.Path & "\"
f = Dir(MyPath & "*.doc")
Do While f <> ""
.Documents.Open MyPath & f
Set t = .ActiveDocument.Tables(1)
For i = 1 To t.Rows.Count
m = m + 1
For j = 1 To t.Columns.Count
arr(m, j) = Replace(t.Cell(i, j).Range.Text, Chr(7), "")
Next
Next
.ActiveDocument.Close
f = Dir
Loop
.Quit
End With
ActiveSheet.UsedRange.ClearContents
[a1].Resize(m, 10) = arr
Application.ScreenUpdating = True
End Sub
[ 本帖最后由 zhaogang1960 于 2011-8-7 21:34 编辑 ]
作者: zhaogang1960 发布时间: 2011-08-07

作者: zslyyy 发布时间: 2011-08-07
代码:
Sub test()Dim WordApp As Object, WD As Object, FN$, Rng As Range
FN = Dir(ThisWorkbook.Path & "\*.doc")
Set WordApp = CreateObject("word.application")
WordApp.Visible = False
Do While FN <> ""
Set WD = WordApp.Documents.Open(ThisWorkbook.Path & "\" & FN)
If [a1] = "" Then
Set Rng = [a1]
Else
Set Rng = Cells(Rows.Count, 1).End(3).Offset(1)
End If
With WD
If .Tables.Count > 0 Then
.Tables(1).Range.Copy
ActiveSheet.Paste Rng
End If
.Close False
End With
FN = Dir
Loop
WordApp.Quit
Set WordApp = Nothing
End Sub
[ 本帖最后由 kevinchengcw 于 2011-8-7 21:49 编辑 ]
作者: kevinchengcw 发布时间: 2011-08-07
名字不同的时候会出现这情况,也就是得顺着,如1、2、3、。。。,但1、2、3、数据1、。。。这样就不行了
[ 本帖最后由 zslyyy 于 2011-8-7 21:57 编辑 ]
作者: zslyyy 发布时间: 2011-08-07
引用:
原帖由 kevinchengcw 于 2011-8-7 21:47 发表Sub test()
Dim WordApp As Object, WD As Object, FN$, Rng As Range
FN = Dir(ThisWorkbook.Path & "\*.doc")
Set WordApp = CreateObject("word.application")
WordApp.Visible = False
Do While FN ""
...
作者: zhaogang1960 发布时间: 2011-08-07
作者: kevinchengcw 发布时间: 2011-08-07
作者: zslyyy 发布时间: 2011-08-07
作者: zslyyy 发布时间: 2011-08-07
Sub Macro2() '每个word有多个表格
Dim f As String, t As Object, arr(1 To 60000, 1 To 10), i&, j&, m&
Application.ScreenUpdating = False
With CreateObject("WORD.APPLICATION")
.Visible = True
MyPath = ThisWorkbook.Path & "\"
f = Dir(MyPath & "*.doc")
Do While f <> ""
.Documents.Open MyPath & f
For Each t In .ActiveDocument.Tables
' Set t = .ActiveDocument.Tables(1)
For i = 1 To t.Rows.Count
m = m + 1
For j = 1 To t.Columns.Count
arr(m, j) = Replace(t.Cell(i, j).Range.Text, Chr(7), "")
Next
Next
Next
.ActiveDocument.Close
f = Dir
Loop
.Quit
End With
ActiveSheet.UsedRange.ClearContents
[a1].Resize(m, 10) = arr
Application.ScreenUpdating = True
End Sub
4楼代码也可以这样修改
作者: zhaogang1960 发布时间: 2011-08-07

作者: zslyyy 发布时间: 2011-08-07
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28