I am trying to do the same thing on Col A but it is not working. I am using the following:

Sub MatchA()
    With Range("a2", Range("a" & Rows.Count).End(xlUp))
        a = .Resize(, 1).Value
        With CreateObject("Scripting.Dictionary")
            .CompareMode = 1
            For i = 1 To UBound(a, 1)
                If a(i, 1) <> "" Then
                    .Item(a(i, 1)) = a(i, 1)
                Else
                    a(i, 1) = .Item(a(i, 1))
                End If
            Next
        End With
        .Value = a
    End With
End Sub
Can you please assist me with this?