抗击新冠疫情期间,有word文件需要填写汇总,如下图:
![](https://img.haomeiwen.com/i2307307/dfca4e04f0ed5843.png)
word不善于公式计算,在word中直接计算表格中的最后行的话过程复杂,考虑到全公司100多人,汇总量也是很大的。于是改换思路,先使用excel VBA 汇总所有员工信息,然后利用excel便捷的计算功能得到汇总数据:
Sub 汇总员工疫情信息()
Dim wordapp As Object
Dim mydoc As Word.Document
Dim mytab As Word.Table
Dim i%
Dim mypath$, myname$
Dim brr(1 To 200, 1 To 17)
t = Timer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wordapp = CreateObject("word.application")
mypath = ThisWorkbook.Path & "\"
myname = Dir(mypath & "*.doc")
m = 0
Do While myname <> ""
Set mydoc = wordapp.Documents.Open(mypath & myname)
With mydoc
m = m + 1
With .Tables(1)
brr(m, 1) = m
For i = 2 To 17
brr(m, i) = Replace(Trim(.Cell(5, i).Range.Text), Chr(7), "")
Next
End With
.Close False
End With
myname = Dir()
Loop
With Worksheets("sheet1")
.Select
.Range("a4").Resize(UBound(brr), UBound(brr, 2)) = brr
End With
End Sub
91秒就可以完成180人的数据汇总。
![](https://img.haomeiwen.com/i2307307/229b49f6f273e4be.png)
下一步,在excel表格中利用简单的计算即可得到比如“湖北籍人数”等统计数值。
网友评论