I tried my best squint and pieced this together, not sure exactly which row you wanted to start pasting the values so I guessed. Let me know if you need anything tweaked!
Sub DataTransfer()
Dim DataTransfer As Workbook
Set DataTransfer = ThisWorkbook
Dim TableSheet As Worksheet
Set TableSheet = DataTransfer.Sheets(1)
Dim firstName(), lastName(), gender(), Rank()
Dim firstRow As Integer, lastRow As Integer
' Hardcoded - row after header
firstRow = 10
' Gets last row of people in row A
lastRow = TableSheet.Cells(Rows.Count, "A").End(xlUp).Row
' Index checks to see where previous row of table is (if macro has ran before
tableRowChecker = TableSheet.Cells(Rows.Count, "N").End(xlUp).Row
' Gets values and stores into arrays
With TableSheet
firstName = Range(.Cells(firstRow, 1), .Cells(lastRow, 1))
lastName = Range(.Cells(firstRow, 2), .Cells(lastRow, 2))
gender = Range(.Cells(firstRow, 3), .Cells(lastRow, 3))
Rank = Range(.Cells(firstRow, 4), .Cells(lastRow, 4))
End With
' Pastes values into table based on what 'tableRowChecker' found was the previous row
For i = LBound(firstName) To UBound(lastName)
TableSheet.Cells(i + tableRowChecker, 14).Value = firstName(i, 1) & " " & lastName(i, 1)
TableSheet.Cells(i + tableRowChecker, 29).Value = gender(i, 1)
TableSheet.Cells(i + tableRowChecker, 32).Value = Rank(i, 1)
Next i
' Clears range after use
TableSheet.Range("A10:D" & lastRow).ClearContents
End Sub