我在两张纸上有40万条记录,每页有5列,其中A列中的数据是唯一标识符。两张纸上的列顺序相同。我正在尝试搜索Sheet1中存在的记录并在Sheet2中找到它。如果找到,则需要将该记录的数据与sheet2中的数据进行比较。数据不匹配应突出显示sheet1中的单元格,并复制工作表3中的整行。
我的宏可以成功处理少量数据,但会被大数据挂起,而excel会自动关闭。
我尝试评论单元格的突出显示,并且仅复制该行并仅分隔25000条记录,但是可能会遇到与前面所述相同的性能问题。
Sub CompareSheets()
Dim wS As Worksheet,wT As Worksheet,RS As Worksheet
Dim intSheet1Column As Integer,i As Long,j As Long,k As Long,FoundRow As Long
Set wS = ThisWorkbook.Worksheets("Sheet1")
Set wT = ThisWorkbook.Worksheets("Sheet2")
Set RS = ThisWorkbook.Worksheets("Sheet3")
RS.Cells.ClearContents
RS.Cells.Interior.Color = RGB(255,255,255)
wS.Rows(1).EntireRow.Copy RS.Range("A1")
On Error Resume Next
For i = 2 To wS.UsedRange.Rows.Count
For j = 2 To wT.UsedRange.Rows.Count
If InStr(1,wT.Range("A" & j).Value,wS.Range("A" & i).Value) > 0 Then
Match = "FOUND"
FoundRow = j
Exit For
End If
Next
If Match = "FOUND" Then
Copyflag = False
For intSheet1Column = 2 To wS.UsedRange.Columns.Count
If wS.Cells(i,intSheet1Column).Value <> wT.Cells(FoundRow,intSheet1Column).Value Then
wS.Cells(i,intSheet1Column).Interior.Color = RGB(255,0)
Copyflag = True
k = RS.UsedRange.Rows.Count
End If
Next
If Copyflag = True Then
wS.Rows(i).EntireRow.Copy RS.Range("A" & k + 1)
End If
End If
Next
MsgBox "Validation Complete"
End Sub
Excel被吊死并自动关闭。