Está claro qué quieres copiar y de dónde lo quieres copiar.
Lo que no explicaste es en dónde exactamente lo quieres pegar.
Entiendo que lo quieres pegar en el libro "xyz", en la hoja "resumen", pero no explicaste en cuáles columnas ni en cuáles filas.
Por ejemplo, quieres copiar de "abc", "hoja1", "B, C, H, I, J, M", en dónde quieres la columna B, en dónde la C, etc.
Luego quieres copiar "abc", "hoja2", "A, B, G, H, R", en dónde quieras la columna A, ¿la quieres a la derecha de la última columna de la hoja1?
Suponiendo que quieres "B, C, H, I, J, M", en las columnas A, B, C, D, E, F y después en la columna H quieres iniciar con el siguiente grupo de columnas, entonces te anexo la macro:
Instrucciones:
- Los libros "abc.xlsx" y "xyz.xlsx" deberán estar abiertos.
- En un tercer libro deberás poner la macro.
- En este tercer libro debes crear una hoja con el nombre parámetros
- La hoja parámetros la debes llenar de la siguiente forma:

La macro:
Sub Copiar_Columnas()
'Por Dante Amor
'copia columnas de libro origien a libro destino
'
Set l0 = ThisWorkbook
Set h0 = l0.Sheets("parametros") 'hoja con parametros de hoja y columnas
Set l1 = Workbooks("ABC.xlsx") 'libro origen
Set l2 = Workbooks("XYZ.xlsx") 'libro destino
Set h2 = l2.Sheets("RESUMEN") 'hoja destino
'
h2.Cells.ClearContents
k = 1
For i = 2 To h0.Range("A" & Rows.Count).End(xlUp).Row
hoja = h0.Cells(i, "A").Value
cols = Split(h0.Cells(i, "B").Value, ",")
For j = LBound(cols) To UBound(cols)
col = WorksheetFunction.Trim(cols(j))
u = l1.Sheets(hoja).Range(col & Rows.Count).End(xlUp).Row
l1.Sheets(hoja).Range(col & "2:" & col & u).Copy
h2.Cells(1, k).PasteSpecial xlValues
k = k + 1
Next
Next
MsgBox "Fin"
End Sub
'.[Sal u dos. Dante Amor. No olvides valorar la respuesta.
'.[Avísame cualquier duda