Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 爱疯

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

  [复制链接]
 楼主| 发表于 2012-1-10 14:40 | 显示全部楼层
本帖最后由 爱疯 于 2012-1-17 10:47 编辑

  1. Sub main()
  2.     Dim doc As Object
  3.     Dim p As String, f As String
  4.     Dim i As Integer
  5.     Dim arr(1 To 9999, 1 To 6) As String
  6.     Application.ScreenUpdating = False
  7.     Range("a2:f65536").ClearContents
  8.    
  9.     p = ThisWorkbook.Path & ""
  10.     f = Dir(p & "*.doc")
  11.     '查找每个doc
  12.     Do While f <> ""
  13.         i = i + 1
  14.         Set doc = GetObject(p & f)
  15.         '对文档中第一个表格
  16.         With doc.Tables(1)
  17.             arr(i, 1) = Left(.cell(2, 2), Len(.cell(2, 2)) - 1)
  18.             arr(i, 2) = Left(.cell(3, 2), Len(.cell(3, 2)) - 1)
  19.             arr(i, 3) = Left(.cell(8, 2), Len(.cell(8, 2)) - 1)
  20.             arr(i, 4) = Left(.cell(8, 4), Len(.cell(8, 4)) - 1)
  21.             arr(i, 5) = Left(.cell(12, 4), Len(.cell(12, 4)) - 1)
  22.             arr(i, 6) = pd(.cell(17, 2))
  23.         End With
  24.         f = Dir()
  25.     Loop
  26.     [a2].Resize(i, 6) = arr
  27. End Sub

  28. '判断
  29. Function pd(Str As String) As String
  30.     With CreateObject("vbscript.regexp")
  31.         .Global = True
  32.         .MultiLine = True
  33.         .Pattern = "(\d+\.){3}\d+"
  34.         If .Execute(Str).Count > 1 Then
  35.             pd = .Execute(Str)(0) & "/" & .Execute(Str)(1)
  36.         End If
  37.     End With
  38. End Function
复制代码
新建文件夹.rar (34.06 KB, 下载次数: 224)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

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

应该感谢上清和liuts两位高手给我们的指点!

通过在"结果.xls"用VBA编写代码,如果代码正确,电脑会自动完成指定操作,实现我们的目的。

因为这是以VBA为基础的,所以当理解了每句代码的含义就能清楚了。如果有不清楚的地方,你就来VBA提问发帖和大家一起来学习吧。

回复

使用道具 举报

发表于 2012-1-11 12:33 | 显示全部楼层
liuts 发表于 2011-11-22 11:45
本帖最后由 liuts 于 2011-11-22 11:49 编辑

Sub aa()&nbsp;&nbsp;&nbsp; On Error Resume Next&nbsp; ...

很深奥,这个论坛的都是大师级啊,
回复

使用道具 举报

发表于 2012-1-12 19:58 | 显示全部楼层
本帖最后由 jrtzxjh 于 2012-1-12 20:11 编辑

爱疯版主请教一个问题,如果一个word模板想自动命名文件名不用VBA的话有没有什么办法啊,如一个模板我想用表格中的人名+病历号作为文件名的话可以吗,或只用人名做文件名即可

模板1.rar

5.85 KB, 下载次数: 20

回复

使用道具 举报

 楼主| 发表于 2012-1-12 20:10 | 显示全部楼层
jrtzxjh 发表于 2012-1-12 19:58
爱疯版主请教一个问题,如果一个word模板想自动命名文件名不用VBA的话有没有什么办法啊,如一个模板我想用表 ...

我也是跟着在学,有很多不清楚的问题。

你是希望将"模板1.dot"更名,是吗?比如,更名为abc.dot 。那么这个新名字"abc"是从哪儿来的呢?

建议来  『Excel VBA程序开发』 发帖提问,一定有很多高手来关注的。注意,要把题意说清楚啊。
回复

使用道具 举报

发表于 2012-1-13 19:59 | 显示全部楼层
爱疯版主帮忙看一下这一个,怎么弄,好吗

1.rar

6.07 KB, 下载次数: 12

回复

使用道具 举报

发表于 2012-1-14 17:16 | 显示全部楼层
爱疯版主帮忙看一下吧

点评

回复了呀,http://www.excelpx.com/thread-219519-1-1.html  发表于 2012-1-14 20:15
回复

使用道具 举报

发表于 2012-1-14 20:57 | 显示全部楼层
爱疯版主这是另一种情况啊,不是哪一个,你下载看一下就知道了,这是从word导入excel中的内容
回复

使用道具 举报

发表于 2012-1-14 20:57 | 显示全部楼层
爱疯老大有qq号码
回复

使用道具 举报

发表于 2014-9-11 09:55 | 显示全部楼层
学习了   谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 16:08 , Processed in 0.223265 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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