Dejo una macro de ejemplo, con comentarios para que puedas ajustar los detalles que no están indicados en tu consulta:
Sub capturaLibro()
'x Elsamatilde
'guardamos nombre de libro actual para el pase de datos
libro1 = ActiveWorkbook.Name
'se busca el libro sin confirmar la extensión ---- AJUSTAR
libroN = Application.GetOpenFilename("Excel files, *.xls*")
'si la variable está vacía significa que cancelamos la ventana de diálogo
If libroN = False Then
MsgBox "No se ha seleccionado ningún libro, el proceso se cancela.", , "ATENCIÓN"
Exit Sub
End If
'se abre el libro elegido
Workbooks.Open libroN
'ahora es el libro activo. copiamos el rango ---- AJUSTAR
ActiveWorkbook.Sheets("Hoja1").Select
'se pega en el libro de origen a partir de A1 ----AJSTAR
ActiveSheet.Range("A1:P" & Range("A" & Rows.Count).End(xlUp).Row).Copy _
Destination:=Workbooks(libro1).Sheets("Hoja2").Range("A1")
'opcional: cerrar el libro buscado sin guardar los cambios.
ActiveWorkbook.Close False
MsgBox "Fin de la captura", , "INFORMACIÓN"
End Sub
Ajusta si hiciera falta las referencias indicadas.
Si esta respuesta resuelve tu consulta no olvides valorarla (Excelente o buena), sino comenta con más detalles.