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