Excel VBA – 工作表数据比较

我正在比较两张表中的数据。 在这个代码中,只有其他部分正在执行,如果我使用r1.value,则会引发types不匹配错误。 请build议改进​​。 这里是我的代码:

Sub compareData() Dim r As Range Dim r1 As Range Dim r2 As Range With Worksheets("Sheet1") Set r1 = Intersect(.Range("A:A"), .UsedRange) End With With Worksheets("Sheet2") Set r2 = Intersect(.Range("A:A"), .UsedRange) End With For Each r In r2 If r1.Text <> r2.Text Then r.Offset(0, 4).Value = "Closed" Else r.Offset(0, 4).Value = 1 End If Next r End Sub 

谢谢

r1是许多单元格的范围,所以它的值是一个数组。 r是单个单元,所以它的值是单个variables。 您不能将数组与单个变体进行比较,因此types不匹配。

如果你想检查r2每个文本是否存在于r1中,这个testing可以实现它:

 For Each r In r2 If Application.CountIf(r1, r.Text) = 0 Then r.Offset(0, 4).Value = "Closed" Else r.Offset(0, 4).Value = 1 End If Next r 

如果你想比较两个列在相同位置上的相等性,你可以像这样做一个循环:

 Dim i as Long For i = 1 to r2.rows.Count If r2.Cells(i, 1).Value2 = r1.Cells(i, 1).Value2 Then r2.Cells(i, 4).Value = "Closed" Else r2.Cells(i, 4).Value = 1 End If Next i