比较两件事:Cells.Value和整数但Type Mismatch错误。

时间:2017-06-23 16:07:18

标签: excel vba

我在第6列中有数据。这里的数据是“差异”,计算为前两列之间的差异。由于我正在进行对帐,因此差异列中的值应为0。

会发生一个for循环,我逐行检查第6列中的值是否等于0.如果值为0,那么我很好。我需要知道它是不是0所以我做了进一步的调查。

 'calculating the differences in previous cols
          MyReport.Range("F2:F" & LastRow).Formula = "=RC[-4]-RC[-2]"
'This is where the Type error occurs at .value<>0 line 
If MyReport.Cells(RowCounter, 6).Value <> 0 Then
                    MyReport.Cells(RowCounter, 6).Interior.ColorIndex = 40
                End If

数字长而不是整数,也许这就是为什么?我曾经在整数中使用它并且它工作但我有一个更大的数据集所以我需要使用长。使用long给了我这个错误,我之前没有。

1 个答案:

答案 0 :(得分:0)

好的,我想出了怎么做,万一其他人也有同样的问题。

For Row=2 to RowCounter 
    If IsNumeric(MyReport.Cells(RowCounter, 6).Value) = True Then
        If MyReport.Cells(RowCounter, 6).Value <> 0 Then
        My.Cells(RowCounter, 6).Interior.ColorIndex = 40
        End If
    ElseIf IsNumeric(MyReport.Cells(LastRow, 6).Value) = False Then
    MyReport.Cells(RowCounter, 6).Interior.ColorIndex = 40
    End If

只有当单元格中的数据是数字时,我才会检查它是否不等于0.如果它不是数字(IsNumeric = False),那么我会自动突出显示它。