Excel 在VBA中查找列的平均值
我试图找到给定列中所有数字的平均值Excel 在VBA中查找列的平均值,excel,vba,overflow,average,Excel,Vba,Overflow,Average,我试图找到给定列中所有数字的平均值 'Find the Average Dim count As Integer Dim sum As Integer Dim lastCol As Integer Dim c As Integer Dim num As Long lastCol = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.count).Column For c = 2 To lastCol sum = 0
'Find the Average
Dim count As Integer
Dim sum As Integer
Dim lastCol As Integer
Dim c As Integer
Dim num As Long
lastCol = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.count).Column
For c = 2 To lastCol
sum = 0
count = 0
ActiveSheet.Cells(2, c).Select
Do While ActiveCell.Value <> ""
sum = sum + ActiveCell.Value
count = count + 1
ActiveCell.Offset(1, 0).Activate
Loop
'num = sum / count
ActiveCell.Value = sum / count
'ActiveCell.Value = num
我试过许多不同的方法来解决这个问题。我尝试的一种解决方案是在本例中使用一个中间长变量“num”来传递值。上面已经注释掉了试图找到解决方案的尝试。我尝试的另一个解决方案是使用CLng()将变量类型转换为长字符串。这两种解决方案仍然产生相同的溢出错误。有人知道如何解决这个问题吗?这里有另一种方法可以获得工作表最后一列(不包括第一行)中所有单元格的平均值:
Sub Luxation()
Dim lastCol As Long, rng As Range
lastCol = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column
Set rng = Range(Cells(2, lastCol), Cells(Rows.Count, lastCol))
MsgBox Application.WorksheetFunction.Average(rng)
End Sub
你有什么类型的数字-所有的整数,一些实数(1.051…),你只想要一个整数作为你的答案吗?你真的只想把两个数字相加吗−32768和32767?当您在调试模式下将鼠标悬停在
sum
和count
上时,它们的值是什么?Chips-我有整数和实数,我想保留它们为实数截取-当我进入调试模式时,循环中的sum和count都是0'我尝试将count变量更改为双精度,但是收到了相同的溢出错误。
Sub Luxation()
Dim lastCol As Long, rng As Range
lastCol = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column
Set rng = Range(Cells(2, lastCol), Cells(Rows.Count, lastCol))
MsgBox Application.WorksheetFunction.Average(rng)
End Sub