【发布时间】:2018-04-02 06:06:57
【问题描述】:
我有一个表格,第一行作为标题,第一列有学生姓名,其余单元格有不同的学生分数。
我必须在 O 列上创建一个新标题,显示平均分数。完成后,我必须计算从 B 列到 N 列的所有值,然后打印出 O 列每一行的平均值。
Sub CalculateAverage()
Dim rng As Range
Dim totalsum As Double
Dim totalnum As Double
Dim answer As Double
totalsum = 0
totalnum = 0
Set rng = Cells(1, 1).CurrentRegion
For Each Sheet In Application.Worksheets
Sheet.Cells(1, 15) = "Average Score"
ActiveSheet.Cells.HorizontalAlignment = xlLeft
Next
For Each Sheet In Worksheets("Sheet1").Range("B2:N502").Cells
totalsum = totalsum + Sheet.Value
totalnum = totalnum + 1
Next
answer = totalsum / totalnum
Average = answer
Range("O2").Select
ActiveCell.FormulaR1C1 = Average()
End Sub
我在倒数第二行遇到调试错误。谁能帮我解决这个问题。谢谢
【问题讨论】:
-
感谢您告诉我。我只是在第二个 For 语句之后添加了一个结尾。该代码不再显示任何错误,但它也没有做任何事情......我做错了什么?
-
将“For Each Sheet”更改为“For Each rng”并删除括号:ActiveCell.FormulaR1C1 = Average
-
你为什么不使用工作表公式呢?
=AVERAGE(B2:N502)或者如果出于某种原因它必须在 VBA 中:Application.WorksheetFunction.Average(B2:N502)我错过了什么吗? -
@DisplayName 只是这样做了,它向我显示了每个语句的第一个调试错误 13 不匹配
-
@ashleedawg 我需要这样做,这样即使我添加更多行,宏也会运行并在 O 列中进行平均