|
发表于 2017-6-5 12:11
|
显示全部楼层
本楼为最佳答案
- Private Sub CommandButton1_Click()
- Dim doc As Object
- Dim p As String, f As String
- Dim s As Integer
- Dim arr(1 To 30000, 1 To 6) As String '如果文件数超过,再改
-
- Application.ScreenUpdating = False
- Application.DisplayAlerts = False
- p = ThisWorkbook.Path & ""
- f = Dir(p & "*.doc")
- i = 1
- Do While Len(f) > 0
- Set doc = GetObject(p & f)
- For i = 1 To doc.tables.Count Step 1
- On Error Resume Next
- With doc.tables(i)
- A1 = zh(.cell(1, 1))
- If A1 Like "姓名*" Then
- s = s + 1
- arr(s, 1) = zh(.cell(2, 2)) '班级
- arr(s, 2) = zh(.cell(1, 2)) '姓名
- arr(s, 3) = zh(.cell(1, 6)) '学号
- End If
- End With
- With doc.tables(i + 1)
- A1 = zh(.cell(1, 1))
- If A1 Like "年级*" Then
- arr(s, 4) = zh(.cell(15, 2)) '初一
- arr(s, 5) = zh(.cell(15, 3)) '初二
- arr(s, 6) = zh(.cell(15, 4)) '初三
- End If
- End With
- Next
- doc.Close False
- f = Dir()
- Loop
- Range("a3").Resize(s, 6) = arr
- Application.ScreenUpdating = True
- Application.DisplayAlerts = True
- End Sub
-
- Function zh(str As String) As String '去除字符
- zh = Replace(str, Chr(13), "")
- zh = Replace(str, Chr(7), "")
- End Function
复制代码 |
评分
-
查看全部评分
|