宝哥软件园

利用Excel进行个人计划执行记录和统计分析

编辑:宝哥软件园 来源:互联网 时间:2021-09-19

转眼间,2月19日已经到了4月。自从年初立了旗,我们就努力往实现的方向跑。有的表现不错,比如每天更新Excel微信,坚持每天学习,有的还没开始。是时候督促自己全面出发了!于是做了一个简单的计划执行情况统计分析表,加了少量的VBA码,方便自己每周检查计划执行情况,提醒自己没有做的事情,赶紧补上。

接下来,我们将与您分享创作过程。感兴趣的朋友可以作为模板,或者结合自己的实际情况,稍加修改,作为自己的工具之一。

下面是我用的数据记录表,名字叫“个人计划执行记录”。每天晚上睡觉前或者第二天早上上班前,我都会在这里记录我的学习和生活。

g列使用“数据有效性”功能(即原来的“数据有效性”),分类可以直接从列表中选择,如下图所示。

数据验证设置如下。

其中,“类别”是定义的名称,表示工作表“计划执行统计”的单元格区域B7:B21,如下所示。

在中,单元格C4是统计的开始日期,称为开始日期;单元格D4是统计数据的结束日期,称为结束日期,这是我们在此工作表中需要输入的唯一两个数值。输入日期后,点击右侧的“更新”按钮,自动统计两个日期之间的对应数据。该按钮与VBA自动统计程序相关联,如下所述。

单元格区域C7:D21为输出区域,每次分类花费的时间和做的次数由VBA程序自动生成。

单元格区域B7:B21不仅作为上述类别下拉列表项的来源,还设置了条件格式,如下图所示。当统计的次数不符合要求时,对应的分类字体会显示红色。

在VBA代码中,使用了高级过滤功能。工作表“个人计划执行记录”的单元格区域J1:K2是条件区域,与工作表“计划执行统计”中输入的开始日期和结束日期相关联。从M1单元开始,放置符合过滤标准的数据,如下所示。

将过滤后的数据与类别进行比较,计算相应类别中的项目花费的时间和执行的次数,并输入工作表“计划执行统计”中的单元格区域C7:D21。

完整的代码如下:

子计划统计()

数据分析汇总工作簿变量。

将工作周设为工作表

数据工作簿变量。

将工作周记录为工作表

数据区。

变暗数据作为范围

过滤放置数据的区域。

将rngFilterData调暗为范围

过滤条件区域。

将rngCriteria调暗为范围

“循环变量”

调光范围

将单元格调暗为范围

数据区的最后一行。

暗淡无光

过滤数据的最后一行。

暗淡无光

数据分析区域的最后一行。

昏暗的灯光和长长的一样

计数变量。

暗淡无光

设置工作簿变量。

设置wksStat=工作表(“计划执行统计”)。

设置工作记录=工作表(“个人计划执行记录”)。

设置过滤数据所在的区域。

lngDataLastRow=wksRecord。范围(“一”行。计数)。结束(xlUp)。排

设置rngDatas=wksRecord。范围(“a 1:g”lngDataLastRow)

初始化筛选条件和放置筛选值的区域。

带wksRecord。范围(“J2”)="="[开始日期]。范围(“K2”)="="[结束日期]。范围(“M1:S”行。计数)。清楚的

设置rngCriteria=。范围(“J1:K2”)

设置rngFilterData=。范围(“M1”)

以…结尾

过滤数据。

rngDatas。advancedfilteraction :=xlFilterCopy,_

标准范围:=rngCriteria,_

CopyToRange:=rngFilterData

获取过滤后的数据。

lngFilterLastRow=wksRecord。范围(“M”行)。计数)。结束(xlUp)。排

如果lngFilterLastRow=1,则退出Sub

清除统计表中的现有数据。

lngLastRow=wksStat。范围(“B”行)。计数)。结束(xlUp)。排

wksStat。范围(“c 7:d”lngLastRow)。ClearContents

分析数据并将结果输入数据分析工作簿。

对于[类别]中的每个rng

lngCount=

对于中的每个单元格,记录。范围(“s 323360s”lngfiltrlastrow)

如果rng=cell那么

rng。偏移量(,1)=rng。偏移量(,1)单元格。偏移量(,-2)

lngCount=lngCount 1

如果…就会结束

下一个单元格

rng。偏移(,2)=lngCount

下一个rng

末端接头

代码中有许多“硬代码”,例如wks stat . range(“c 7:d”LNG strow)和wks record . range(“s :s”lngfiltrlastrow)中的单元格引用。如果工作表中的分类或列数据有任何增加或减少,则应进行相应的修改。

代码的图片版本如下:

结论:你不必被代码的优雅所约束,也不必在意通用性。只要能解决问题,迅速达到自己的目的并适合自己,这就是VBA最大的好处。

更多资讯
游戏推荐
更多+