用VB编程时提示错误"溢出"是什么意思

Dim dtmBeginTime As Date, dtmEndTime As Date

Private Sub cmdEnd_Click()
Dim intTimeCost As Integer, intWordCount As Integer
dtmEndTime = Time()
intTimeCost = DateDiff("s", dtmBeginTime, dtmEndTime)
intWordCount = Len(txtInput.Text)
txtSpeed.Text = intWordCount / (intTimeCost / 60)
End Sub

Private Sub cmdStart_Click()
dtmBeginTime = Time0
End Sub

用VB编程时提示错误"溢出"是赋值超出目标(内存)的限制而产生的错误。

溢出(错误 6)

当赋值超出目标的限制时,就会发生溢出。此错误有以下的原因和解决方法:

    赋值、计算或数据类型的结果的转换太大,以致于不能在变量类型所允许的范围内表示出来。

    赋值给足够表示值的范围的类型的变量上。

    给属性的赋值超过属性能接受的最大值。

        确保赋值适合属性的范围。

    试图在计算中使用一个数字,并且该数字被强制为一个整数,但是结果超过了整数的范围,例如:

   Dim x As Long
    x = 2000 * 365   ' 错误: 溢出

要解决这个问题,请按如下方式键入该数字:

   Dim x As Long

    x = CLng(2000) * 365
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-02
用户每设置一个变量类型
系统都会分配一定得空间来储存它,如果这个变量所需的内存大于预分配的内存
就会出现内存溢出的情况,建议根据变量大小来设置类型
各种变量如下
Byte 1 个字节 0 到 255
Boolean 2 个字节 True 或 False
Integer 2 个字节 -32,768 到 32,767
Long
(长整型) 4 个字节 -2,147,483,648 到 2,147,483,647
Single
(单精度浮点型) 4 个字节 负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38
Double
(双精度浮点型) 8 个字节 负数时从 -1.79769313486232E308 到
-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308
Currency
(变比整型) 8 个字节 从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807
Decimal 14 个字节 没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001
Date 8 个字节 100 年 1 月 1 日 到 9999 年 12 月 31 日
Object 4 个字节 任何 Object 引用
String
(变长) 10 字节加字符串长度 0 到大约 20 亿
String
(定长) 字符串长度 1 到大约 65,400
Variant
(数字) 16 个字节 任何数字值,最大可达 Double 的范围
Variant
(字符) 22 个字节加字符串长度 与变长 String 有相同的范围
用户自定义
(利用 Type) 所有元素所需数目 每个元素的范围与它本身的数据类型的范围相同。

注意 任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。
希望对你有所帮助!
第2个回答  2009-05-01
Integer 是 16位有符号整型,范围是 -32768~32767,从 dtmBeginTime 到 dtmEndTime 的秒数超过了 32767,所以溢出。试试把 Integer 换成 Long,如果还溢出,再换成 Currency。本回答被网友采纳
第3个回答  2009-05-01
DateDiff 函数
返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目
Dim intTimeCost As Long
第4个回答  2009-05-01
Dim intTimeCost As Integer, intWordCount As Integer

把Integer改long