Sub Test()
Dim WshSrc As Worksheet, WshCbl As Worksheet, TSrc(), RngCbl As Range, _
TCbl(), LCbl As Long, LSrc As Long, C As Integer
Set WshSrc = Worksheets(1)
Set WshCbl = Worksheets(2)
TSrc = WshSrc.[A2].Resize(WshSrc.[A1000000].End(xlUp).Row - 1, 25).Value
Set RngCbl = WshCbl.[A2].Resize(WshCbl.[A1000000].End(xlUp).Row - 1, 17)
TCbl = RngCbl.Value
For LCbl = 1 To UBound(TCbl, 1)
For LSrc = 1 To UBound(TSrc, 1)
If TSrc(LSrc, 16) = TCbl(LCbl, 1) Then Exit For
Next LSrc
If LSrc <= UBound(TSrc, 1) Then
For C = 4 To 17
TCbl(LCbl, C) = TSrc(LSrc, Choose(C - 3, 15, 22, 25, 4, 5, 6, 12, 13, 7, 8, 9, 10, 11))
Next C
End If
Next LCbl
RngCbl.Value = TCbl
End Sub