使用VBA求解不同工作表的平均值

2025-10-04 20:14:07

1、打开Excel表格后,点击菜单栏上面的【开发工具】,【Visual Basic】打开VBA编辑器。

使用VBA求解不同工作表的平均值

2、在VBA编辑器的菜单栏上面点击【插入】,【模块】。

使用VBA求解不同工作表的平均值

3、在代码框里边输入以下VBA程序代码:

Sub AverageValue()

Dim i, j, c, co, su, bo

On Error Resume Next                '忽略运行过程中出现的错误

Application.ScreenUpdating = False  '关闭运行过程中屏幕刷新,提高运行速度

 Set mysheet1 = ThisWorkbook.Worksheets(1)  '定义工作表,即:Sheet1

 co = 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

  Next

 Application.ScreenUpdating = True    '恢复屏幕更新显示

End Sub

使用VBA求解不同工作表的平均值

4、VBA程序代码思路解读:

(1)由于每个工作表的命名不一样,也可能不规则,如果都使用工作表名称,录入的工作量也是挺大的,此时还是根据实际情况使用工作表的索引号比较妥当快捷;

(2)先获取工作薄里边有多少个工作表,排除用于写入平均值的工作表,再逐一按照工作表顺序进行条件判断(不为空白、不为0、单元格为数值)并求和,对可以求和的表格计1,数值的和除以累计的个数就可以求出平均值。

(3)每执行1行时,都会对所有工作表(除了用于写入平均值的工作表)进行判断、求解平均值。

使用VBA求解不同工作表的平均值

5、输入完程序之后,点击工具栏里边的“运行”图标运行程序,即可在工作表上面看到计算的结果(运行速度的快慢取决于计算量的大小)。

使用VBA求解不同工作表的平均值

6、程序运行之后的结果。

使用VBA求解不同工作表的平均值

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢