1、打开Excel表格后,点击菜单栏上面的【开发工具】,【Visual Basic】打开VBA编辑器。
2、在VBA编辑器的菜单栏上面点击【插入】,【模块】。
3、在代码框里边输入以下VBA程序代码:Sub AverageValue()Dim i巳呀屋饔, j, c, co, su, boOn Error Resume Next '忽俟痂檗盈略运行过程中出现的错误Application.ScreenUpdating = False '关闭运行过程中屏幕刷新,提高运行速度Set mysheet1 = ThisWorkbook.Worksheets(1) '定义工作表,即:Sheet1co = ThisWorkbook.Sheets.Count '统计本工作表里面所含的工作表数量 For j = 2 To 1000 '从第二行执行到1000行 su = 0 '累计清零 c = 0 '计数个数清零 For i = 2 To co '从第二个工作表开始执行,直至最后一个 Set mycells = ThisWorkbook.Worksheets(i).Cells(j, 2) '定义单元格 bo = IsNumeric(mycells) '判断单元格里面的值是否为数字 If mycells <> "" And mycells <> 0 And bo = True Then '如果单元格里面不为空白或者不为零,且为数值,则执行计算 su = Worksheets(i).Cells(j, 2) + su '单元格数值相加 c = c + 1 '累计的次数 mysheet1.Cells(j, 2) = su / c '求解平均值 End If Next NextApplication.ScreenUpdating = True '恢复屏幕更新显示End Sub
4、VBA程序代码思路解读:(1)由于每个工作表的命名不一样,也可能不规则,如果都捂执涡扔使用工作表名称,录入的工作量也是挺大的,此时还是根据实际情况使用工作表的索引号比较妥当快捷;(2)先获取工作薄里边有多少个工作表,排除用于写入平均值的工作表,再逐一按照工作表顺序进行条件判断(不为空白、不为0、单元格为数值)并求和,对可以求和的表格计1,数值的和除以累计的个数就可以求出平均值。(3)每执行1行时,都会对所有工作表(除了用于写入平均值的工作表)进行判断、求解平均值。
5、输入完程序之后,点击工具栏里边的“运行”图标运行程序,即可在工作表上面看到计算的结果(运行速度的快慢取决于计算量的大小)。
6、程序运行之后的结果。