No estoy entendiendo muy bien qué necesitas.
Aquí dices:
"Es decir, el nombre del libro y la hoja siempre tiene el comienzo DATOS y lo que cambia es el MES y el Año. El problema que tengo es que la Macro trabaja con varios Libros y no sé como acceder a un libro no activo y que no se llama siempre igual"
Pero acá dices:
"Por lo que necesito renombrarlos para después poder trabajar con ellos"
----- ---
¿Entonces quieres encontrar el libro y la hoja que empieza con la palabra "DATOS" o quieres renombrar un libro?
----- ---
Con la siguiente macro encuentras, de todos los libros abiertos, el libro que en su nombre empieza con la palabra "DATOS", también encuentra dentro de ese libro, la hoja que en su nombre empieza con la palabra "DATOS".
Entonces en el objeto wb tendrás el libro y en el objeto sh tendrás la hoja:
Sub seleccionar_Libro()
Dim wb As Workbook
Dim sh As Worksheet
'
For Each wb In Workbooks
If UCase(Left(wb.Name, 5)) = "DATOS" Then
For Each sh In wb.Sheets
If UCase(Left(sh.Name, 5)) = "DATOS" Then
MsgBox "El libro se llama: " & wb.Name & vbCr & _
"La hoja se llama: " & sh.Name
End If
Next
End If
Next
End Sub
Revisa lo siguiente para el manejo de objetos:
Sal u dos
Dante Amor