Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在VBA中查找列的平均值_Excel_Vba_Overflow_Average - Fatal编程技术网

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