ОК, в следующем предполагается, что у вас есть лист StartSheet, а тот, который вы хотите скопировать, называется TargetSheet.
Он начинается в строке 1, столбце 1 и проходит через каждую строку. Если имя совпадает, оно присваивает этот rownum переменной.
Затем, используя две строки, строки выбираются, копируются и вставляются.
Этот код не заботится о количестве строк между именами, он просто проверяет сами имена.
Я предполагаю, что в первом столбце есть имена, а не, как вы описали, первая строка.
Sub MoveRows()
Dim rownum As Integer
Dim colnum As Integer
Dim startrow As Integer
Dim endrow As Integer
rownum = 1
colnum = 1
With ActiveWorkbook.Worksheets("StartSheet")
Do
If .Cells(rownum, 1).Value = "RAM" Then
startrow = rownum
End If
rownum = rownum + 1
Loop Until .Cells(rownum, 1).Value = "RAMESH"
endrow = rownum
ActiveWorkbook.Worksheets("StartSheet").Range(startrow & ":" & endrow).Copy
End With
ActiveWorkbook.Worksheets("TargetSheet").Paste
End Sub