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

 时间:2026-02-12 11:50:50

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求解不同工作表的平均值

  • Excel 2007中,VBA开发工具中Combobox的使用
  • excel中使用vba清除复制或者剪贴模式
  • 怎样使用VBA制作百叶窗效果的欢迎画面?
  • 如何使用VBA代码实现多行多列转置
  • 怎样使用VBA工作表激活事件的运用?
  • 热门搜索
    音效大全 梦幻西游手游怎么玩 拉力器锻炼方法视频 李白古诗大全300首 家常凉菜 青岛农业大学怎么样 泡菜的做法大全家常 治疗近视的最好方法 大病医保怎么办理 土豆的家常做法