VBA – 运行时错误6.溢出

这是我正在尝试修复的代码。 这是从Excel电子表格macros。

防爆。 当我运行Tally检查器macros并键入检查器的名称时,macros将假定在每周的每一天都接收数据表格,然后填充我所做的表格。 但是当我运行它,我得到运行时错误6.溢出错误。

代码:

Sub Tally Inspector() Dim personName As String personName = InputBox("Enter Name Of Inspector") Dim counter As Integer Dim endOfTable endOfTable = 130 Dim witnessSum As Integer: witnessSum = 0 'number witness by CCI Dim ICbyCrew As Integer: ICbyCrew = 0 'number done by crew Dim columnLetter As Integer: columnLetter = 11 'K For counter = 5 To endOfTable If StrComp(Cells(counter, columnLetter), personName) = 0 And _ IsNumeric(Cells(counter, columnLetter - 1)) = True Then witnessSum = (witnessSum + Cells(counter, columnLetter - 1).Value) ICbyCrew = (ICbyCrew + Cells(counter, 4).Value) End If Next counter For counter = 150 To 160 Step 1 If Cells(counter, "E").Value = personName Then Cells(counter, "F").Value = ICbyCrew Cells(counter, "G").Value = witnessSum Cells(counter, "H").Value = (witnessSum / ICbyCrew)* 100 'This line is highlighted when I run the debugger' Exit For End If Next counter End Sub Sub Inspector() Dim Inspector As String Dim Inspection As Integer: Inspection = 0 Dim Witness As Integer: Witness = 0 For x = 155 To 158 Inspector = Cells(x, "E") If Inspector = "" Then Exit For End If For y = 5 To 120 If (StrComp(Inspector, Cells(y, "K")) = 0) And (IsNumeric(Cells(y, "D")) = True) And (IsNumeric(Cells(y, "J")) = True) Then Inspection = Inspection + Cells(y, "D") Witness = Witness + Cells(y, "J") End If Next y Cells(x, "F") = Inspection Cells(x, "G") = Witness Cells(x, "H") = (Witness / Inspection) * 100 Inspection = 0 Witness = 0 Next x End Sub 

重新定义你的Integer 。 您可能正在运行Integer的32,767个数字限制。

更改突出显示的代码来自:

 Cells(counter, "H").Value = (witnessSum / ICbyCrew) 100 

至:

 Cells(counter, "H").Value = (witnessSum / ICbyCrew) / 100 

或者:

 Cells(counter, "H") = witnessSum / ICbyCrew & 100 

或者:

 Cells(counter, "H") = witnessSum / ICbyCrew & " " &100