VBA执行PriErrCod()时遇运行时错误'6':溢出,求原因及解决建议
运行时错误'6':溢出的原因与解决办法
错误原因
VBA中Integer类型的取值范围是**-32768到32767**,你的循环要从0执行到65535,当变量i递增到32768时,就超出了Integer类型的最大值,直接触发溢出错误。
解决办法
把变量i的类型从Integer改为Long即可。Long类型的取值范围是-2147483648到2147483647,完全覆盖0到65535的循环需求。
修改后的代码如下:
Option Explicit Private Sub PriErrCod() Dim i As Long ' 替换Integer为Long Dim e Debug.Print "Here are the error codes ..." For i = 0 To 65535 e = Error(i) If e <> "Application-defined or object-defined error" Then Debug.Print i & ": " & e Next i End Sub
额外建议
- 写VBA时优先用
Long代替Integer,现在硬件性能足够,没必要纠结这点内存占用,还能避免绝大部分溢出问题。 - 遇到运行时错误,先对照错误代码查含义,比如错误'6'就是溢出,基本都是变量类型取值范围不够导致的。
内容的提问来源于stack exchange,提问作者HellKat02
相关产品推荐
相关产品推荐

