Public Sub hello()
Dim wsSource As Worksheet, wsNX As Worksheet, arr As Variant, lr As Long, r As Long, fr As Long
Dim mArr As Variant, hArr As Variant, qArr As Variant
Set wsSource = Workbooks("DULIEU.xlsx").Worksheets("DU LIEU")
Set wsNX = Workbooks("XUAT NHAP.xls").Worksheets("Nhap-Xuat")
lr = wsSource.Range("D1000000").End(xlUp).Row
If lr > 3 Then
Application.ScreenUpdating = False
arr = wsSource.Range("A4:E" & lr).Value
ReDim hArr(1 To UBound(arr), 1 To 3)
ReDim qArr(1 To UBound(arr), 1 To 1)
ReDim mArr(1 To UBound(arr), 1 To 1)
For r = 1 To UBound(arr) Step 1
qArr(r, 1) = arr(r, 5)
mArr(r, 1) = arr(r, 4)
hArr(r, 2) = arr(r, 2)
hArr(r, 3) = arr(r, 1)
If WorksheetFunction.Trim(arr(r, 2)) = "" Then
hArr(r, 1) = hArr(WorksheetFunction.Max(r - 1, 1), 1)
Else
hArr(r, 1) = "PX" & Format(arr(r, 2), "00")
End If
Next
fr = wsNX.Range("A65000").End(xlUp).Row + 1
lr = fr + UBound(arr) - 1
wsNX.Range("A" & fr & ":C" & lr).Value = hArr
wsNX.Range("K" & fr & ":K" & lr).Value = mArr
wsNX.Range("Q" & fr & ":Q" & lr).Value = qArr
Application.ScreenUpdating = True
End If
End Sub