Pero no pusiste cuál es el destino de cada rango.
Una manera sencilla de hacer las copias es así:
Sub CopiarRangos()
'Por.Dante Amor
'Datos del libro1
Set l1 = Workbooks("Libro1")
Set h1 = l1.Sheets("hoja1")
'Datos del libro2
Set l2 = Workbooks("Libro2")
Set h2 = l2.Sheets("hoja1")
h1.[d15].Copy h2.[d15]
h1.[d22: g22].Copy h2.[d22]
h1.[d24: g24].Copy h2.[d24]
h1.[m10: m14].Copy h2.[m10]
h1.[z10: ab10].Copy h2.[z10]
End Sub
Ahora que si quieres un ciclo, podría ser así:
Sub copiar()
'Por.Dante Amor
'
'Datos del libro1
Set l1 = Workbooks("Libro1")
Set h1 = l1.Sheets("hoja1")
'
'Datos del libro2
Set l2 = Workbooks("Libro2")
Set h2 = l2.Sheets("hoja1")
'
rangos = Array("d15", "d22: g22", "d24: g24", "m10: m14", "z10: ab10")
destinos = Array("d15", "d22", "d24", "m10", "z10")
'
For i = LBound(rangos) To UBound(rangos)
h1.Range(rangos(i)).Copy h2.Range(destinos(i))
Next
End Sub
En ambos casos tienes que especificar cuál es la celda destino.
Saludos. Dante Amor
Recuerda valorar la respuesta.
.