Sub gpe_test()
Dim ws As Worksheet, vung(), dArr()
Dim i As Long, tmp As String, K As Long, iHeader As String
Set ws = Sheets("Sheet1")
vung = ws.Range(ws.Range("D5000").End(xlUp), ws.Range("D1")).Value
'1 To UBound(vung, 1): vong` lap duyet tu` dong` 1 den' dong` cuoi' cung` vung` chon.
ReDim dArr(1 To UBound(vung, 1), 1 To 1) 'khai bao kich thuoc mang
'-------
For i = 1 To UBound(vung, 1)
tmp = vung(i, 1)
K = K + 1
'--------
'If tmp <> "" And Left(tmp, 4) = "Ngày" Then
If Left(tmp, 4) = "Ngày" Then
dArr(K, 1) = tmp
iHeader = tmp
Else
dArr(K, 1) = iHeader 'hoac: dArr(K, 1) = dArr(K - 1, 1)
End If
Next
'-------
If K Then
ws.Range("E1:E5000").ClearContents
ws.Range("E1").Resize(K, 1) = dArr
End If
Set ws = Nothing: Erase vung
End Sub