Sub LayDL()
Dim sArr, dArr, I As Long, k As Long, n As Long, eR As Long
sArr = Sheets("Data").Range("A4").CurrentRegion.Value
ReDim dArr(1 To UBound(sArr), 1 To 30)
Application.ScreenUpdating = False
For I = 4 To UBound(sArr)
If sArr(I, 19) <> "" Then
k = k + 1
dArr(k, 1) = k
dArr(k, 1) = sArr(I, 27)
dArr(k, 2) = sArr(I, 28)
dArr(k, 3) = sArr(I, 29)
dArr(k, 4) = sArr(I, 9)
dArr(k, 5) = "Khach le"
dArr(k, 6) = ""
dArr(k, 7) = "Phi dich vu"
dArr(k, 8) = sArr(I, 21)
dArr(k, 9) = sArr(I, 19)
dArr(k, 10) = sArr(I, 22)
dArr(k, 11) = sArr(I, 30)
dArr(k, 12) = sArr(I, 7)
dArr(k, 13) = sArr(I, 5)
End If
Next
Sheet3.Activate
Range("A2:M" & Range("A" & Rows.Count).End(xlDown).Row).Clear
If k > 0 Then Range("A2").Resize(k, 17).Value = dArr
Application.ScreenUpdating = True
For I = 4 To UBound(sArr)
If sArr(I, 26) <> 0 Then
n = n + 1
dArr(n, 1) = n
dArr(n, 1) = sArr(I, 27)
dArr(n, 2) = sArr(I, 28)
dArr(n, 3) = sArr(I, 29)
dArr(n, 4) = sArr(I, 9)
dArr(n, 5) = "Khach le"
dArr(n, 6) = ""
dArr(n, 7) = "Service Charge"
dArr(n, 8) = sArr(I, 25)
dArr(n, 9) = sArr(I, 23)
dArr(n, 10) = sArr(I, 26)
dArr(n, 11) = sArr(I, 30)
dArr(n, 12) = sArr(I, 7)
dArr(n, 13) = sArr(I, 5)
End If
Next
Sheet3.Activate
eR = Range("A" & Rows.Count).End(xlUp).Row + 1
If n > 0 Then Range("A" & eR).Resize(n, 17).Value = dArr
Application.ScreenUpdating = True
With Sheet3
[I:I].Replace What:=" VAT", Replacement:=""
Sheet3.Activate
ActiveWindow.DisplayGridlines = False
[D:D].NumberFormat = "mm/dd/yyyy"
[H:H,J:J].NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""_);_(@_)"
eR = Range("A" & Rows.Count).End(xlUp).Row
[N1] = "Site"
[N2].Formula = "= M2 & ""_"" & text(month(D2),""0#"")& ""_"" &right(year(D2),2)& ""_"" &Right(A2, 3)"
Range("N2:N" & eR).FillDown
With Range("N2:N" & eR)
.Value = .Value
[M:M].Delete
[A1].Select
End With
End With
End Sub