【发布时间】:2015-09-30 21:43:42
【问题描述】:
我正在尝试查找给定列中所有数字的平均值。
'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
当我尝试运行它时,我收到该行的溢出错误
ActiveCell.Value = sum / count
我尝试了许多不同的方法来解决这个问题。我尝试的一种解决方案是在这种情况下使用中间长变量“num”来传递值。上面对解决方案的尝试进行了注释。我尝试的另一个解决方案是使用 CLng() 将变量类型转换为 long。这两种解决方案仍然产生相同的溢出错误。有没有人知道如何解决这个问题?
【问题讨论】:
-
你有哪些类型的数字 - 所有的整数,一些实数(1.051...),你只想要一个整数作为你的答案?
-
您真的只是将 -32,768 和 32,767 之间的整数相加吗?在调试模式下将鼠标悬停在
sum和count上时,它们的值是多少? -
筹码 - 我有整数和实数,我想保留它们的实数
-
吉普车 - 当我进入调试模式时,循环内的总和和计数都是 0
-
我确实尝试将计数变量更改为双精度,但收到相同的溢出错误。
标签: excel vba overflow average