EXcel vba :运行时错误‘13’,类型不匹配 EXcel vba :运行时错误‘6’,溢出

Sub query3()
Dim str As Integer
Dim i As Integer
i = 3
While Cells(i, 9).Value <> ""
Cells(i, 1).Value = CInt(Cells(i, 9).Value)
i = i + 1
Wend

End Sub
请大家先看我这个VB语句,我也查过错误6与13的原因与解决方案,不过都没什么用。我那个语句的本意是将EXCEL表的第9列从第3行开始向下复制到遇到空为止,然后从第1列的第3行向下粘贴。我大概有20万条记录,但是有时候会有1048756条,反正就是循环特别多次,但是这样就会出现上述错误,而且当我特意的把第9列从第6行的弄空,即让循环几次就够了,则能正常通过,我试过不要循环10000次就不会遇错。于是我判断循环次数不能太大,所以我想问有什么方法能解决循环次数过多也能正常通过。

第1个回答  2016-08-18
变量为integer的范围为-32768至32768,如果超过这个次数的循环就会错,要不将变量定义为长整型long,它的数值范围为-2,147,483,648至2,147,483,648。你的代码没复制完成吧!还有一个str变量在哪里?

在我的2010版本中运行正常。追问

谢谢了

第2个回答  2016-08-18
Dim str As Integer
Dim i As Integer
你将str 和i 都定义为整数,它的取值范围是:-32768 ~ 32767,所以出错。你可
Dim str As long
Dim i As long本回答被提问者采纳
相似回答