ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助老师帮忙

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-1 21:13 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
老师,我这有200多个WORD数据,WORD里的表格格式不一样,想通过关键字合计汇总到一个EXCEL中,该如何写,谢谢老师。
原WORD格式

原WORD1

原WORD1

原WORD2

原WORD2

生成的WXCEL格式

生成的WXCEL格式

求助.zip

33.06 KB, 下载次数: 10

TA的精华主题

TA的得分主题

发表于 2018-8-2 06:25 来自手机 | 显示全部楼层
以公司名称命名文件名就好办

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-2 06:53 | 显示全部楼层
xyxcc177 发表于 2018-8-2 06:25
以公司名称命名文件名就好办

是以公司名称命名的,怎么做呢,老师

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-2 08:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-8-2 09:28 | 显示全部楼层

老坐等能行吗?

求助.rar

56.74 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2018-8-2 09:35 | 显示全部楼层
程序在word中
Sub test()

Dim ph As Paragraph
Dim gsName, je As String
Dim r, c As Integer
Dim path As String
Dim tb As Word.Table
Dim wdFile As String

Dim doc As Document
path = ThisDocument.path
wdFile = Dir(path & "\*.docx")
Dim arr(200, 2)
Dim i As Integer
i = 0

Do While wdFile <> ""
Set doc = Application.Documents.Open(path & "\" & wdFile)

For Each ph In doc.Paragraphs
gsName = ph.Range.Text             '取出公司名称
If Len(gsName) > 1 Then Exit For
Next
gsName = getText(gsName)

Set tb = doc.Tables(1)
r = tb.Rows.Count: c = tb.Columns.Count
je = getText(tb.Cell(r, c - 1).Range.Text) '取出合计
   arr(i, 0) = gsName: arr(i, 1) = je
  i = i + 1
  doc.Close
  wdFile = Dir

Loop

Dim excel As Object
Set excel = CreateObject("excel.application")
Dim book As Object
Set book = excel.workbooks.Open(path & "\结果.xlsx")
book.worksheets(1).Range("a2").Resize(200, 2).Value = arr
excel.Visible = True
  

End Sub
Function getText(ByVal txt As String) As String
getText = Mid(txt, 1, Len(txt) - 1)

End Function

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-2 09:45 | 显示全部楼层
xyxcc177 发表于 2018-8-2 09:35
程序在word中
Sub test()

老师,能不能直接用合计作为关键字,提取后面那个数值。主要由于有些WORD有几个表格的,再次麻烦老师了

TA的精华主题

TA的得分主题

发表于 2018-8-2 10:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
cainiao1231 发表于 2018-8-2 09:45
老师,能不能直接用合计作为关键字,提取后面那个数值。主要由于有些WORD有几个表格的,再次麻烦老师了

Sub test()

Dim ph As Paragraph
Dim gsName, je As String
Dim r, c As Integer
Dim path As String
Dim tb As Word.Table
Dim wdFile As String
Dim HJ As Double

Dim doc As Document
path = ThisDocument.path
wdFile = Dir(path & "\*.docx")
Dim arr(200, 2)
Dim i As Integer
i = 0

Do While wdFile <> ""
Set doc = Application.Documents.Open(path & "\" & wdFile)

   For Each ph In doc.Paragraphs
     gsName = ph.Range.Text             '取出公司名称
     If Len(gsName) > 1 Then Exit For
   Next
   gsName = getText(gsName)
   HJ = 0
    For Each tb In doc.Tables
     r = tb.Rows.Count: c = tb.Columns.Count
     je = getText(tb.Cell(r, c - 1).Range.Text) '取出合计
     HJ = HJ + Val(je)
    Next
   arr(i, 0) = gsName: arr(i, 1) = HJ
  i = i + 1
  doc.Close
  wdFile = Dir

Loop

Dim excel As Object
Set excel = CreateObject("excel.application")
Dim book As Object
Set book = excel.workbooks.Open(path & "\结果.xlsx")
book.worksheets(1).Range("a2").Resize(200, 2).Value = arr
excel.Visible = True
  

End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-2 10:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
xyxcc177 发表于 2018-8-2 10:01
Sub test()

Dim ph As Paragraph

老师,先谢谢了,但有些WORD好几个表格,但合计就只有一个,我只想取合计的数值,您写的对一个表的没问题。
Snap1.jpg

TA的精华主题

TA的得分主题

发表于 2018-8-2 10:23 | 显示全部楼层
本帖最后由 xyxcc177 于 2018-8-2 10:26 编辑

你在胡说,你有1000个表格都可以提取的,你一开始不把所有的问题都摆出来,你这是玩呢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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