No hay un modo único para realizar ésto. Dependerá de lo que necesites borrar o conservar en cada hoja.
Generalmente, si los libros deben empezar de 0 al inicio de cada año, les sugiero que guarden una copia vacía. Y esa será la que se comenzará a utilizar el 1/1 de cada año. Quizás también tengas que agregar una macro para volcar algunos datos que se fueron generando durante el año, como nuevas listas o saldos.... Depende del contenido de cada libro.
Para borrar ahora un libro terminado, estos pueden ser los pasos.
1- Guardar una copia final (identificarla con la fecha correspondiente, por ej: 31-12-2021)
2- Guardarlo como libro de inicio, por ej: 01-01-2022. Y en este libro desarrollar/ejecutar el código de limpieza. Dejo una idea a continuación.
Lo que hago es eliminar filas utilizadas manteniendo solo la primera de cada hoja para conservar formatos, fórmulas, etc. Esto dependerá de cada modelo de hoja. Si deseas mantener algunas filas de datos por la fecha, podrías hacer un filtrado (por ej con fecha anterior a 2022) y borrar solo las celdas visibles.
Y como al eliminar filas se recalcula la hoja paso el modo de cálculo a manual y lo vuelvo a automático al finalizar el proceso.
'modo de cálculo en manual para evitar el recálculo.
Application.Calculation = xlCalculationManual
'se procede a limpiar las hojas
For Each sh In Sheets
'instrucciones comunes a todas las hojas
With sh
'hacer visible la hoja, seleccionarla y desprotegerla
If .Visible = False Then .Visible = True
.Select: .Unprotect
'encontrar el fin de rango
filx = .UsedRange.Rows.Count
End With
If sh.Name = "MOVIMIENTOS" Then
With sh
'si hubo filas utilizadas se limpia de contenido la primera y el resto se elimina
If filx > 7 Then .Range("A8:AJ" & filx).EntireRow.Delete
.Range("A7:AD7").ClearContents
End With
ElseIf sh.Name = "COBRANZAS" Then
With sh
'si hubo filas utilizadas se limpia de contenido la primera y el resto se elimina
If filx > 5 Then .Range("A6:N" & filx).EntireRow.Delete
.Range("A5:N5").ClearContents
End With
'Elseif 'otras hojas
End If
sh.Protect 'agregar clave y opciones de protecci´n
Next sh
'volver a cálculo automático
Application.Calculation = xlCalculationAutomatic
Espero te sirva la sugerencia. No olvides valorar la respuesta.