Em có làm file truy vấn sổ cái cho một người bạn, tuy nhiên vì dữ liệu rất lớn ( 7 tháng đầu năm hơn 200k dòng) nên em thấy tốc độ chạy khá chậm. Mong nhờ mọi người chỉnh sửa code lại giúp em để cải thiện tốc độ xử lý dữ liệu ạ.
Sub test()
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
Sheet2.Activate
Sheet2.ShowAllData
Sheet2.Range(Sheet2.Range("A9"), Sheet2.Range("A1048576")).EntireRow.ClearContents
Dim arr
Dim i, j
Dim DK_1
j = 9
DK_1 = Sheet2.Range("D1").Value
arr = Sheet1.Range(Sheet1.Range("A4"), Sheet1.Range("A1048576").End(xlUp).Offset(0, 10)).Value
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 4) = DK_1 And arr(i, 5) = DK_1 Then
Sheet2.Range("A" & j & "" & j).Value = Sheet1.Range("A" & i + 3 & "
" & i + 3).Value
Sheet2.Cells(j, 5).Value = arr(i, 6)
Sheet2.Cells(j, 6).Value = arr(i, 6)
Sheet2.Range("G" & j & ":K" & j).Value = Sheet1.Range("G" & i + 3 & ":K" & i + 3).Value
j = j + 1
ElseIf arr(i, 4) = DK_1 Then
Sheet2.Range("A" & j & ":C" & j).Value = Sheet1.Range("A" & i + 3 & ":C" & i + 3).Value
Sheet2.Cells(j, 4).Value = arr(i, 5)
Sheet2.Cells(j, 5).Value = arr(i, 6)
Sheet2.Range("G" & j & ":K" & j).Value = Sheet1.Range("G" & i + 3 & ":K" & i + 3).Value
j = j + 1
ElseIf arr(i, 5) = DK_1 Then
Sheet2.Range("A" & j & ":C" & j).Value = Sheet1.Range("A" & i + 3 & ":C" & i + 3).Value
Sheet2.Cells(j, 4).Value = arr(i, 4)
Sheet2.Cells(j, 6).Value = arr(i, 6)
Sheet2.Range("G" & j & ":K" & j).Value = Sheet1.Range("G" & i + 3 & ":K" & i + 3).Value
j = j + 1
End If
Next i
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub