Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 22937|回复: 21

[已解决]从WORD表中提取内容到EXCEL

  [复制链接]
发表于 2011-11-22 11:04 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2012-1-10 15:05 编辑

说明:

1、有多个WORD文档,格式一样。

2、把指定内容(比如1.doc中的黄色填充),依次提取到结果表的a,b,c,d,e,f列。(如果指定无内容,就不提取)

3、结果表标题行可不管。




新建文件夹.rar (28.89 KB, 下载次数: 774)

评分

参与人数 3 +12 收起 理由
绛紫色 + 1 来学习
sunjeffsun + 1 赞一个
老糊涂 + 10 很给力!

查看全部评分

发表于 2011-11-22 11:13 | 显示全部楼层
等高手出现了~~帮你顶一下{:3912:}

点评

谢谢  发表于 2011-11-22 11:14
回复

使用道具 举报

发表于 2011-11-22 11:24 | 显示全部楼层
MsgBox ActiveDocument.Tables(1).Cell(2, 2) '单位名称
MsgBox ActiveDocument.Tables(1).Cell(3, 2) '地址
MsgBox ActiveDocument.Tables(1).Cell(8, 4) '电话
其余折腾去吧
回复

使用道具 举报

 楼主| 发表于 2011-11-22 11:28 | 显示全部楼层
上清宫主 发表于 2011-11-22 11:24
MsgBox ActiveDocument.Tables(1).Cell(2, 2) '单位名称
MsgBox ActiveDocument.Tables(1).Cell(3, 2) '地 ...

谢谢上清!
可以这样表示呀,学习了!
为什么每个返回值最后都有1个黑圆点呀?
回复

使用道具 举报

发表于 2011-11-22 11:32 | 显示全部楼层
好象从表格中取出来的都这样,具体机制不清楚(是结束符?)。可以将他取消了吧。
回复

使用道具 举报

发表于 2011-11-22 11:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 liuts 于 2011-11-22 11:49 编辑

Sub aa()
    On Error Resume Next
    Dim rep As New RegExp, mac, sr As String, x As Integer, fname As String, filename
    Dim xls As Object
    Set xls = ThisWorkbook.Sheets("Sheet1")
    fname = Dir(ThisWorkbook.Path & "\*.doc")
    Do
        x = x + 1
        fname = Dir
    Loop Until fname = ""
    For i = 1 To x
        filename = ThisWorkbook.Path & "\" & i & ".doc"
        Set doc = GetObject(filename)
        xls.Cells(i + 1, 1) = Left(doc.Tables(1).cell(2, 2), Len(doc.Tables(1).cell(2, 2)) - 1)
        xls.Cells(i + 1, 2) = Left(doc.Tables(1).cell(3, 2), Len(doc.Tables(1).cell(3, 2)) - 1)
        xls.Cells(i + 1, 3) = Left(doc.Tables(1).cell(8, 2), Len(doc.Tables(1).cell(8, 2)) - 1)
        xls.Cells(i + 1, 4) = Left(doc.Tables(1).cell(8, 4), Len(doc.Tables(1).cell(8, 4)) - 1)
        xls.Cells(i + 1, 5) = Left(doc.Tables(1).cell(12, 4), Len(doc.Tables(1).cell(12, 4)) - 1)
        sr = doc.Tables(1).cell(17, 2)
        With rep
            .Global = True
            .MultiLine = True
            .Pattern = "(\d+\.){3}\d+"
            Set mac = .Execute(sr)
        End With
        xls.Cells(i + 1, 6) = mac(0) & "/" & mac(1)
    Next
    Set rep = Nothing
End Sub

提取word字符,我这里老多出一个黑点在最后,所以用left截取了一下 没问题,可取消left
 

回复

使用道具 举报

发表于 2011-11-22 15:45 | 显示全部楼层
谢谢分享        
回复

使用道具 举报

 楼主| 发表于 2011-11-23 09:32 | 显示全部楼层
谢谢上清和liuts!
{:25:}
回复

使用道具 举报

发表于 2012-1-10 12:39 | 显示全部楼层
版主我是一个门外汉看到这个帖子很激动,但是你上面的代码怎么用呢,是写程序还是用txt还是写在excel里呢,能不能写一个教程啊,等待版主赐教
回复

使用道具 举报

发表于 2012-1-10 14:20 | 显示全部楼层
收藏一下,慢慢看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 02:43 , Processed in 0.459674 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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