运行时错误“6”比较2个文件时溢出

我有下面的代码来比较两张之间的数据,并突出显示差异。 但它给了我一个

运行时错误'6'溢出

在执行if条件时在compareSheets过程中。

有人可以帮助我解决这个问题吗?

 Sub RunCompare() 'Call the compareSheets routine Call compareSheets("Sheet1", "Sheet2") End Sub Sub compareSheets(Sheet1 As String, Sheet2 As String) Dim mycell As Range Dim mydiffs As Integer For Each mycell In ActiveWorkbook.Worksheets("Sheet2").UsedRange If Not mycell.Value = ActiveWorkbook.Worksheets("Sheet1").Cells(mycell.Row, mycell.Column).Value Then mycell.Interior.Color = vbYellow mydiffs = mydiffs + 1 End If Next MsgBox mydiffs & " differences found", vbInformation End Sub 

你把mydiffs作为一个integer变暗,反而变暗。 发生的事情是数字超过了32767。

此外,与您的子问题(不会导致此问题,但应该纠正)是,您不使用参数Sheet1 / 2,而是使用string“Sheet1”/“Sheet2”,删除报价标记如下。

 Sub compareSheets(Sheet1 As String, Sheet2 As String) Dim mycell As Range Dim mydiffs As Long For Each mycell In ActiveWorkbook.Worksheets(Sheet2).UsedRange If Not mycell.Value = ActiveWorkbook.Worksheets(Sheet1).Cells(mycell.Row, mycell.Column).Value Then mycell.Interior.Color = vbYellow mydiffs = mydiffs + 1 End If Next MsgBox mydiffs & " differences found", vbInformation End Sub