ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2886|回复: 8

从多张word表中提取数据到表格中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-23 17:36 | 显示全部楼层 |阅读模式
我下面这个vba可以运行,但运行一段时间后就自动停止,提取的数据也不见了。另外application.screenupdating=false,也关闭不了屏幕更新,为什么,请高手指导。
Sub extract()
    Dim nfile As String
    Dim nextrow As Integer
    Dim mypath As String

    Application.ScreenUpdating = False
    nextrow = 2

    mypath = ThisDocument.Path & "\"
    nfile = Dir(mypath)
    Documents.Open FileName:=mypath & nfile
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 1).Range = Documents(nfile).Tables(1).Cell(1, 2).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 2).Range = Documents(nfile).Tables(1).Cell(1, 4).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 3).Range = Documents(nfile).Tables(1).Cell(1, 6).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 4).Range = Documents(nfile).Tables(1).Cell(2, 2).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 5).Range = Documents(nfile).Tables(1).Cell(2, 4).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 6).Range = Documents(nfile).Tables(1).Cell(2, 6).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 7).Range = Documents(nfile).Tables(1).Cell(3, 2).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 8).Range = Documents(nfile).Tables(1).Cell(3, 4).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 9).Range = Documents(nfile).Tables(1).Cell(3, 6).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 10).Range = Documents(nfile).Tables(1).Cell(4, 2).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 11).Range = Documents(nfile).Tables(1).Cell(4, 4).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 12).Range = Documents(nfile).Tables(1).Cell(5, 3).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 13).Range = Documents(nfile).Tables(1).Cell(5, 5).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 14).Range = Documents(nfile).Tables(1).Cell(6, 3).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 15).Range = Documents(nfile).Tables(1).Cell(6, 5).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 16).Range = Documents(nfile).Tables(1).Cell(7, 2).Range

           Documents(nfile).Close False

            Do While nfile <> "" And nfile <> "汇总表.docm.docx"
                nextrow = nextrow + 1
                    nfile = Dir
                        Documents.Open FileName:=mypath & nfile
                                Documents("汇总表.docm").Tables(1).Cell(nextrow, 1).Range = Documents(nfile).Tables(1).Cell(1, 2).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 2).Range = Documents(nfile).Tables(1).Cell(1, 4).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 3).Range = Documents(nfile).Tables(1).Cell(1, 6).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 4).Range = Documents(nfile).Tables(1).Cell(2, 2).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 5).Range = Documents(nfile).Tables(1).Cell(2, 4).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 6).Range = Documents(nfile).Tables(1).Cell(2, 6).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 7).Range = Documents(nfile).Tables(1).Cell(3, 2).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 8).Range = Documents(nfile).Tables(1).Cell(3, 4).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 9).Range = Documents(nfile).Tables(1).Cell(3, 6).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 10).Range = Documents(nfile).Tables(1).Cell(4, 2).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 11).Range = Documents(nfile).Tables(1).Cell(4, 4).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 12).Range = Documents(nfile).Tables(1).Cell(5, 3).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 13).Range = Documents(nfile).Tables(1).Cell(5, 5).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 14).Range = Documents(nfile).Tables(1).Cell(6, 3).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 15).Range = Documents(nfile).Tables(1).Cell(6, 5).Range
        Documents("汇总表.docm").Tables(1).Cell(nextrow, 16).Range = Documents(nfile).Tables(1).Cell(7, 2).Range
            Documents(nfile).Close False
            Loop
        Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

发表于 2018-7-24 08:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
来个附件吧,不然写不出来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-24 09:08 | 显示全部楼层
一张汇总表附带一张word样表

汇总表.zip

26.91 KB, 下载次数: 117

一张汇总表附带一张样表

TA的精华主题

TA的得分主题

发表于 2018-7-24 09:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
xxpxxp 发表于 2018-7-24 09:08
一张汇总表附带一张word样表

可否用excel来收集汇总?

TA的精华主题

TA的得分主题

发表于 2018-7-24 10:14 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-24 11:12 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-24 11:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-7-24 11:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
xxpxxp 发表于 2018-7-24 11:17
为什么提取的数据后边都有个黑点啊

黑点是word表格中的换行符,替换掉就行了。
没空看你的代码,具体原因不清楚。

TA的精华主题

TA的得分主题

发表于 2019-11-5 23:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 00:32 , Processed in 0.023904 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表