【发布时间】:2018-05-31 15:53:31
【问题描述】:
来自 Python 的 VBA 的新手,因此不再有区别。
Sub Average_Income()
Dim data As Worksheet
Dim avg As Worksheet
Dim i As Long
Dim Total As Long
Dim Bottom As Long
Dim Low As Long
Dim Mid As Long
Dim Mid_High As Long
Dim High As Long
Dim Top As Long
Dim Number As Long
Set data = ActiveWorkbook.Sheets("Data")
Set avg = ActiveWorkbook.Sheets("Averages")
Total = CLng(7)
Bottom = CLng(8)
Low = CLng(9)
Mid = CLng(10)
Mid_High = CLng(11)
High = CLng(12)
Top = CLng(13)
For i = 2 To 1000
Number = avg.Cells(i, 2)
CLng(Number) = CLng(data.Cells(Total, 19).Value) / CLng(data.Cells(Total, 18).Value)
Total = Total + 8
Next i
End Sub
我觉得我已经尝试了一切!怎么回事?
【问题讨论】:
-
您不应该在 = 运算符的左侧使用
CLng。哪一行导致错误,发生错误时相关的单元格值是什么? -
这可能/可能不是问题,是否可以将一个变量设置为 Double,因为小数点,可以解决?
-
如果
data.Cells(Total, 18).Value包含零 (0),您将始终收到溢出错误。 -
错误发生在 CLng(Number) = CLng(data.Cells(Total, 19).Value) / CLng(data.Cells(Total, 18).Value)
-
@SkyMaster 不正确,仅当
CLng(data.Cells(Total, 19).Value)也为 0 时。仅当CLng(data.Cells(Total, 18).Value)等于 0 时会出现除以 0 的错误。
标签: vba excel integer-overflow