|
楼主 |
发表于 2012-1-10 14:40
|
显示全部楼层
本帖最后由 爱疯 于 2012-1-17 10:47 编辑
- Sub main()
- Dim doc As Object
- Dim p As String, f As String
- Dim i As Integer
- Dim arr(1 To 9999, 1 To 6) As String
- Application.ScreenUpdating = False
- Range("a2:f65536").ClearContents
-
- p = ThisWorkbook.Path & ""
- f = Dir(p & "*.doc")
- '查找每个doc
- Do While f <> ""
- i = i + 1
- Set doc = GetObject(p & f)
- '对文档中第一个表格
- With doc.Tables(1)
- arr(i, 1) = Left(.cell(2, 2), Len(.cell(2, 2)) - 1)
- arr(i, 2) = Left(.cell(3, 2), Len(.cell(3, 2)) - 1)
- arr(i, 3) = Left(.cell(8, 2), Len(.cell(8, 2)) - 1)
- arr(i, 4) = Left(.cell(8, 4), Len(.cell(8, 4)) - 1)
- arr(i, 5) = Left(.cell(12, 4), Len(.cell(12, 4)) - 1)
- arr(i, 6) = pd(.cell(17, 2))
- End With
- f = Dir()
- Loop
- [a2].Resize(i, 6) = arr
- End Sub
-
- '判断
- Function pd(Str As String) As String
- With CreateObject("vbscript.regexp")
- .Global = True
- .MultiLine = True
- .Pattern = "(\d+\.){3}\d+"
- If .Execute(Str).Count > 1 Then
- pd = .Execute(Str)(0) & "/" & .Execute(Str)(1)
- End If
- End With
- End Function
复制代码
新建文件夹.rar
(34.06 KB, 下载次数: 224)
|
|