Tu petición inicial fue
El rango contiene un listado de personas y quiero crear una hoja nueva por cada persona. No mencionaste nada de copiar, la macro hace las dos cosas valida que la hoja exista, si existe te crea una copia exactamente igual a donde tienes el listado, sino crea la hoja y copia la información formatos, fórmulas todo pasa exactamente como esta.
Sub crear_copiar()
Set h1 = Worksheets("hoja1")
Set datos = h1.Range("a1").CurrentRegion
With datos
For I = 1 To .Rows.Count
nombre = .Cells(I, 1): buscarhoja = False
On Error Resume Next
buscarhoja = (Worksheets(nombre).Name <> "")
existe = buscarhoja
On Error GoTo 0
If existe Then
copia:
Set destino = Worksheets(nombre)
h1.Cells.Copy: destino.Range("a1").PasteSpecial xlPasteAllUsingSourceTheme
Else
Sheets.Add(After:=Sheets(Sheets.Count)).Name = nombre
GoTo copia
End If
Next I
End With
h1.Select
Set datos = Nothing
End Sub