Для всех намерений и целей VLOOKUP просто ищет значение в одном столбце и возвращает значение в другом столбце для этой строки.
Option Explicit
Sub HRG2HRa()
Dim i As Long, j As Long, m As Variant
Dim hrgA As Variant, hrgK As Variant, hrgBA As Variant
Dim hraA As Variant, hra2C As Variant
With Worksheets("HRG")
i = .Cells(.Rows.Count, "A").End(xlUp).Row
hrgA = .Range(.Cells(2, "A"), .Cells(i, "A")).Value2
hrgK = .Range(.Cells(2, "K"), .Cells(i, "K")).Value2
hrgBA = .Range(.Cells(2, "BA"), .Cells(i, "BA")).Value2
End With
With Worksheets("HRA")
i = .Cells(.Rows.Count, "A").End(xlUp).Row
j = .Cells(1, .Columns.Count).End(xlToLeft).Column
hraA = .Range(.Cells(2, "A"), .Cells(i, "A")).Value2
ReDim hra2C(LBound(hraA, 1) To UBound(hraA, 1), 1 To 2)
For i = LBound(hraA, 1) To UBound(hraA, 1)
m = Application.Match(hraA(i, 1), hrgA, 0)
If Not IsError(m) Then
hra2C(i, 1) = hrgK(m, 1)
hra2C(i, 2) = hrgBA(m, 1)
End If
Next i
.Cells(2, j + 1).Resize(UBound(hra2C, 1), UBound(hra2C, 2)) = hra2C
End With
End Sub