Excel VBA溢出错误在中断模式下消失
我有以下几行代码:Excel VBA溢出错误在中断模式下消失,excel,vba,Excel,Vba,我有以下几行代码: redim a(1 to N) for i = 1 to N a(i) = someFunction(i) Next i 当运行它时,我会看到“运行时错误6:溢出”。它进入中断模式,循环中的行:a(i)=someFunction(i)高亮显示。为了找到错误,我进入该函数并逐行检查。没有错误,它工作正常并继续运行。只要我以这种方式执行代码,保持中断模式&一次执行一个调用someFunction,它就会工作,但只要我回到正常执行状态,溢出错误就会回来 有人知道如何消除溢
redim a(1 to N)
for i = 1 to N
a(i) = someFunction(i)
Next i
当运行它时,我会看到“运行时错误6:溢出”
。它进入中断模式,循环中的行:a(i)=someFunction(i)
高亮显示。为了找到错误,我进入该函数并逐行检查。没有错误,它工作正常并继续运行。只要我以这种方式执行代码,保持中断模式&一次执行一个调用someFunction
,它就会工作,但只要我回到正常执行状态,溢出错误就会回来
有人知道如何消除溢出吗?您应该提供整个函数,这样我们就可以看到您声明变量的方式
错误是由错误的变量声明引起的。您的一个或多个变量无法接受该值(例如:您将变量i声明为整数,因此它无法接受如下值:i=55000;整数的最大值约为32000到32800)。感谢大家的帮助,我找到了问题所在。是
someFunction
中的某个东西导致了溢出,我不确定为什么它没有在中断模式下发生,但我修复了导致溢出的原因,现在它正在工作。暂停时a(I)
、I
和someFunction(I)
的值是什么?只需将鼠标光标移动到VBE中的变量名上即可。您是否正在移动行?行计数器应该声明为Long
如果你是的,我想说的是,你可能不会得到溢出错误,因为当你调试的时候,你没有完全通过代码。salih0vicX的答案可能是问题的原因。它还可以解释为什么在调试时不再现错误,因为在找到溢出错误之前需要32767次迭代,这个神奇的数字是32767。有符号16位整数的范围为-2^15到2^15-1。