I got similar times although I was getting times of ~7.8 for TEST.
But with this version I was getting ~6.4
Sub TEST()
Dim r1 As Range, r2 As Range
Dim ary12 As Variant, ary22 As Variant, ary1 As Variant, ary2 As Variant
Dim i As Long, m As Long
StartTime = Timer
Set r1 = Worksheets("sheet1").Cells(1, 1).CurrentRegion.Resize(, 2)
Set r2 = Worksheets("sheet2").Cells(1, 1).CurrentRegion
ary12 = r1.Value
ary22 = r2.Value
'
'ary1 = Application.WorksheetFunction.Transpose(r1.Columns(1))
'ary2 = Application.WorksheetFunction.Transpose(r2.Columns(1))
For i = LBound(ary12) To UBound(ary12)
For j = LBound(ary22) To UBound(ary22)
If ary12(i, 1) = ary22(j, 1) Then
ary12(i, 2) = ary22(j, 2)
Exit For
End If
Next j
Next i
Debug.Print "TEST" & vbTab & Timer - StartTime
Sheet1.Range("B1").Resize(UBound(ary12)).Value = Application.Index(ary12, 0, 2)
'r1.Value = ary12 'commented out because I didn't want possibly to mess column A
End Sub
Nested loops through arrays seems faster than using Application.Match