|
|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 fxl447098457 于 2017-11-23 13:10 编辑
Sub my()
Dim fn As String, myapp As Object, Wdoc As Object,i%, j%, TotalPages%, Arr(), k&
Application.ScreenUpdating = False
Set myapp = CreateObject("word.application")
fn = ThisWorkbook.Path & "\模板1.doc"
With myapp
Set Wdoc = .documents.Open(Filename:=fn)
Wdoc.ActiveWindow.View.Type = 3
TotalPages = Wdoc.ActiveWindow.Panes(1).Pages.Count * 2
For i = 1 To TotalPages
If i Mod 2 = 0 Then
k = k + 1
ReDim Preserve Arr(1 To 10, 1 To k)
With Wdoc.tables(i)
Arr(1, k) = Split(.Cell(1, 2).Range.Text, vbCr)(0)
Arr(2, k) = Split(.Cell(1, 6).Range.Text, vbCr)(0)
Arr(3, k) = "'"
For j = 2 To 19
Arr(3, k) = Arr(3, k) & Split(.Cell(2, j).Range.Text, vbCr)(0)
Next j
Arr(4, k) = Split(.Cell(2, 21).Range.Text, vbCr)(0)
Arr(5, k) = Split(.Cell(3, 2).Range.Text, "□")(1)
If Len(Arr(5, k)) >= 5 Then Arr(5, k) = "农村" Else Arr(5, k) = "城镇"
Arr(6, k) = Split(.Cell(3, 4).Range.Text, vbCr)(0)
Arr(7, k) = Split(.Cell(5, 2).Range.Text, vbCr)(0)
Arr(8, k) = Split(.Cell(5, 4).Range.Text, vbCr)(0)
Arr(9, k) = Split(.Cell(6, 2).Range.Text, vbCr)(0)
Arr(10, k) = Split(.Cell(8, 4).Range.Text, vbCr)(0)
End With
End If
Next i
Wdoc.Close 0
.Quit
End With
[A1].CurrentRegion.Offset(1).ClearContents
[A2].Resize(UBound(Arr, 2), 10) = Application.Transpose(Arr)
Set myapp = Nothing
Application.ScreenUpdating = True
End Sub |
评分
-
1
查看全部评分
-
|