La macro adjunta tiene aclaraciones en cada instrucción para que puedas ajustar algún que otro detalle a tu modelo, por ejemplo: extensión de los libros mensuales, o cuál es la columna que siempre tendrá datos hasta el final del rango y esa se utiliza para indicar cuál es la próxima fila del pegado que ahora asumí como A.
Sub capturaLibros()
'x Elsamatilde
Application.ScreenUpdating = False
'libro y hoja donde se va a capturar. Primer fila = 2
Set w1 = ThisWorkbook
Set h1 = w1.Sheets(1)
ini = 2
'ruta de la carpeta con los libros mensuales
ruta = w1.Path & "\"
ChDir ruta
archi = Dir(ruta & "*.xlsm*")
'se abre cada uno de los libros de la carpeta
Do While archi <> ""
If archi <> w1.Name Then
On Error Resume Next
Set w2 = Workbooks.Open(ruta & archi)
'si hubo error de apertura continúa con el sgte libro
If Err.Number > 0 Then GoTo otroLibro
'se busca el nombre de la hoja en el nombre del libro
espa = InStr(9, w2.Name, " ")
ho = Mid(w2.Name, 9, espa - 9)
Set h2 = w2.Sheets(ho)
'se copia el rango "BD_" & ho
h2.Range("BD_" & ho).Copy Destination:=h1.Range("A" & ini)
'se cierra el libro del mes sin guardar
w2.Close False
End If
'se calcula fila destino desde col A
ini = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
siguiendo:
archi = Dir()
Loop
MsgBox "Fin de la captura"
Exit Sub
otroLibro:
MsgBox "Error de apertura en libro 'archi'. Se continua con el resto."
GoTo siguiendo:
End Sub
Como no indicas ruta de los libros mensuales asumí que estarán todos en la misma carpeta junto con el libro activo.
Sino debes ajustar la línea ruta = w1.Path & "\" agregando una subcarpeta, por ej:
ruta = w1.Path & "\MENSUALES\"
Hay mucha tarea realizada aquí ... espero no olvides valorar esta respuesta (opciones Excelente o buena).
Sdos!