Vba 执行While-溢出错误
此代码查找标题为“分配的数量”的列,然后将列中的字符串转换为小数,即Vba 执行While-溢出错误,vba,Vba,此代码查找标题为“分配的数量”的列,然后将列中的字符串转换为小数,即00009102”=9.102 Sub ConvertDec() Dim colNum As Integer Dim i As Integer Dim x As Integer colNum = WorksheetFunction.Match("Quantity Dispensed", ActiveWorkbook.ActiveSheet.Range("1:1"), 0) i = 2 Do While ActiveWorkb
00009102”=9.102
Sub ConvertDec()
Dim colNum As Integer
Dim i As Integer
Dim x As Integer
colNum = WorksheetFunction.Match("Quantity Dispensed", ActiveWorkbook.ActiveSheet.Range("1:1"), 0)
i = 2
Do While ActiveWorkbook.ActiveSheet.Cells(i, colNum).Value <> ""
x = Evaluate(Cells(i, colNum).Value)
Cells(i, colNum) = Int(x / 1000) + (x Mod 1000) / 1000
i = i + 1
Loop
End Sub
Sub-ConvertDec()
Dim colNum作为整数
作为整数的Dim i
作为整数的Dim x
colNum=WorksheetFunction.Match(“分配数量”,ActiveWorkbook.ActiveSheet.Range(“1:1”),0)
i=2
在ActiveWorkbook.ActiveSheet.Cells(i,colNum).Value“”时执行
x=计算(单元格(i,colNum).Value)
单元(i,colNum)=Int(x/1000)+(x Mod 1000)/1000
i=i+1
环
端接头
执行时,我在“x=Evaluate…”行上出现溢出错误
列中的值为字符串形式。例如
“000012000”
120000大于整数32768的最大值。请改用长类型
尝试将
Dim x作为整数
更改为Dim x作为长
。整数的最大值仅为32768。同样,使用Dim i作为长
更可靠。顺便问一句,是否有任何理由使用x=Evaluate(Cells(i,colNum).value)
而不是x=Cells(i,colNum).Value
?列中的值为字符串形式,例如“000012000”“120000
大于整数的最大值32768
。改用Long
类型。而且没有必要使用评估,这似乎是问题所在。我读到整数最多可容纳2147483647,但您提到的最大值显然是正确的。它在VB.NET中整数2147483647的最大值,在VBA-32768中