利用Excel智能统计借书记录

办公族

学校图书馆的管理员小张最近很苦恼。由于工作原因,他要在上千人的名单中,进行排序,再分类汇总。他一直想找个一劳永逸的方法来解决这个问题,于是找到了笔者。

一、问题分析

首先我们看一下工作表的结构,总共四个字段,分别是序号、班级、姓名、借书本数,需要在后面统计得到每个学生借书的次数和借书的总册书。考虑到这个表里的姓名是平时累积登记的,所以杂乱无章,首先是把整个表格按照姓名进行排序,这样,把一个同学的借书的情况就全都放置到一起了,看起来一目了然,然后,再用VBA对同一个姓名进行循环统计,统计其借书的次数,以及历次借书的总册书,最后再将统计结果追加到表格后面。

二、解决问题的过程

问题分析完以后,说动手就动手。首先启动Excel,打开需要统计的工作表。依次选择“视图→工具栏→控件工具箱”,单击选中命令按钮控件,在工作表中拖动鼠标,画出一个命令按钮,默认的名称是“CommanButton1”,双击该命令按钮,这样就打开了Visual basic编辑器窗口,在“Private Sub CommandButton1 Click()”与“End Sub”之间输入以下代码。

代码内容:

Sub tongji()

Sheets("sheet1").[e1]="次数"

Sheets("sheet1").[f1]="累计本数"

a=Sheets("sheet1").[a1].CurrentRegion.Rows.Count

Sheets("sheet1").[a1].CurrentRegion.Sort Key1:=Sheets("sheet1").[c1], Order1:=xlAscending, Header:=xlGuess

b=2 '姓名的起始行

flag=2 '用来计数

Do While flag <= a

d=Application.WorksheetFunction.CountIf([c2:c65530],Cells(b,3))

Sheets("sheet1").Cells(b, 5)=d

For i=b To b+d-1

sum1=sum1+Sheets("sheet1").Cells(i,4)

Next i

Sheets("sheet1").Cells(b, 6)=sum1

flag=b+d

b=flag

sum1=0

Loop

End Sub

代码输入完毕以后,首先在VisualBasic编辑器窗口单击工具栏中的三角形运行按钮,确认程序可以运行通过了,按“Alt+F11”组合键返回Excel主窗口。现在,所有一切都浓缩在了工作表中的一个小小按钮上面了,我们已经把所有的代码全封闭在这小小的按钮中,相信小张再也不会为统计的问题发愁了。只要轻轻单击下这个按钮,所有的统计结果将全部清晰地显示在屏幕上。