ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 急!高难度从word表格中获取数据到excel,分列时要重复取数据

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-2 22:00 | 显示全部楼层
Moneky 发表于 2015-3-31 10:46
我的Doc2Xls应该可以帮你,http://club.excelhome.net/thread-1029709-1-1.html,下载最新版(看原帖追加说 ...

见10楼中的附件的文件,按你的那程序,就无法使用了,你能做个示范吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-3 12:07 | 显示全部楼层
再顶下求助

TA的精华主题

TA的得分主题

发表于 2015-4-3 13:12 | 显示全部楼层
westwindgg 发表于 2015-4-3 12:07
再顶下求助
  1. Sub tiqu()
  2.     Dim dpath, Filename As String
  3.     Dim wdapp As Word.Application
  4.     Dim wddocument As Word.Document
  5.     Dim arr(1 To 20), crr(1 To 100), drr(1 To 100)
  6.     dpath = ThisWorkbook.Path
  7.     Set wdapp = New Word.Application
  8.     Application.ScreenUpdating = False
  9.     Filename = Dir(dpath & "\*.doc")
  10.     On Error Resume Next
  11.     Do While Filename <> ""
  12.         Set wddocument = wdapp.Documents.Open(dpath & "" & Filename)
  13.         With wddocument
  14.             arr(1) = .Tables(1).Cell(1, 2).Range.Text
  15.             arr(2) = .Tables(1).Cell(1, 4).Range.Text
  16.             arr(3) = .Tables(1).Cell(2, 4).Range.Text
  17.             arr(4) = .Tables(1).Cell(3, 2).Range.Text
  18.             arr(5) = .Tables(2).Cell(5, 2).Range.Text
  19.             arr(6) = .Tables(2).Cell(6, 2).Range.Text
  20.             arr(7) = .Tables(2).Cell(7, 2).Range.Text
  21.             arr(8) = .Tables(2).Cell(2, 2).Range.Text
  22.             arr(9) = .Tables(2).Cell(3, 2).Range.Text
  23.             arr(10) = .Tables(4).Cell(5, 2).Range.Text
  24.             arr(11) = .Tables(5).Cell(1, 1).Range.Text
  25.             arr(12) = .Tables(6).Cell(1, 1).Range.Text
  26.             x = .Tables(4).Rows.Count '不规格表格找处目标入组人数
  27.             For i = 10 To x
  28.                 str1 = Mid(.Tables(4).Cell(i, 1).Range.Text, 1, 6)
  29.                 If str1 = "目标入组人数" Then
  30.                     arr(15) = .Tables(4).Cell(i, 2).Range.Text
  31.                     arr(16) = .Tables(4).Cell(i + 1, 2).Range.Text
  32.                     i = x
  33.                 End If
  34.             Next i
  35.                x1 = .Tables(7).Rows.Count '不规格表格找机构
  36.             For m = 7 To x1
  37.                 str1 = Replace(.Tables(7).Cell(m, 2).Range.Text, vbCr & "", "")
  38.                 If str1 = "机构名称" Then
  39.                     jig = x1 - m
  40.                     For w = 1 To jig
  41.                     crr(w) = Replace(.Tables(7).Cell(m + w, 2).Range.Text, vbCr & "", "")
  42.                     drr(w) = Replace(.Tables(7).Cell(m + w, 3).Range.Text, vbCr & "", "")
  43.                     Next
  44.                     Exit For
  45.                 End If
  46.             Next m
  47.             For i = 1 To 16
  48.                 arr(i) = Replace(arr(i), vbCr & "", "")
  49.             Next
  50.         End With
  51.         With Sheet1
  52.             r = .[a65536].End(xlUp).Row + 1
  53.             For n = 1 To jig
  54.             arr(13) = crr(n)
  55.             arr(14) = drr(n)
  56.              .Range("A" & r).Resize(1, 16) = arr
  57.              r = r + 1
  58.            Next
  59.         End With
  60.         wddocument.Close
  61.         Filename = Dir()
  62.     Loop
  63.     Set wddocument = Nothing
  64.     wdapp.Quit
  65.     Set wdapp = Nothing
  66.     Application.ScreenUpdating = True
  67. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2015-4-3 13:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不知道你的机构有这么多,见附件:

新建文件夹.zip

51.62 KB, 下载次数: 88

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-3 20:50 | 显示全部楼层
dyp1610 发表于 2015-4-3 13:14
不知道你的机构有这么多,见附件:

有一个问题,CTR20130001 有“目标入组人数”和“实际入组人数”这两列和相应的值,但CTR20130002没有,按你的那代码,结果CTR20130002的信息的“O”列和“P列”值还是取得CTR20130001的值,即“国内试验252人”,而不是空值。这应该是一个bug, 请教应该如何修正呢?

TA的精华主题

TA的得分主题

发表于 2015-4-3 21:55 | 显示全部楼层
你的表格怎么这么不规范,如果是你说的这种情况的话,在第27行代码前加入arr(15)="":arr(16)=""就行了

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-4 09:54 | 显示全部楼层
dyp1610 发表于 2015-4-3 21:55
你的表格怎么这么不规范,如果是你说的这种情况的话,在第27行代码前加入arr(15)="":arr(16)=""就行了

非常感谢!周未快乐!

TA的精华主题

TA的得分主题

发表于 2017-4-2 20:33 | 显示全部楼层
Moneky 发表于 2015-3-31 10:46
我的Doc2Xls应该可以帮你,http://club.excelhome.net/thread-1029709-1-1.html,下载最新版(看原帖追加说 ...

大神我知道你这个好用,可是老出问题,能能帮助我一下吗?

TA的精华主题

TA的得分主题

发表于 2017-4-2 20:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-1-16 19:52 | 显示全部楼层
非常好的工具。以后有机会可以使用下。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 05:30 , Processed in 0.036755 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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