Pues creo que ya lo tengo, esta es la macro.
Sub Borrar_Columnas()
Dim Hallado As Boolean
Dim Texto
Dim Ucol, Ufil, Inicio, Fin As Integer
Dim Rango As Range
Ucol = Worksheets("Hoja1").Cells(1, Cells.Columns.Count).End(xlToLeft).Column
Do
Hallado = False
Texto = InputBox("Introduzca el mes inicial: ")
If Texto = "" Then Exit Sub
Set Rango = Worksheets("Hoja1").Range(Cells(1, 1), Cells(1, Ucol)).Find(Texto, LookIn:=xlValues, lookat:=xlWhole)
If Not Rango Is Nothing Then
Hallado = True
Inicio = Rango.Column
End If
Loop Until Hallado
Do
Hallado = False
Texto = InputBox("Introduzca el mes final: ")
If Texto = "" Then Exit Sub
Set Rango = Worksheets("Hoja1").Range(Cells(1, 1), Cells(1, Ucol)).Find(Texto, LookIn:=xlValues, lookat:=xlWhole)
If Not Rango Is Nothing Then
Hallado = True
Fin = Rango.Column
End If
Loop Until Hallado
Ufil = Worksheets("Hoja1").Range("A" & Cells.Rows.Count).End(xlUp).Row
Worksheets("Hoja1").Range(Cells(2, Inicio), Cells(Ufil, Fin)) = 0
End Sub
Aunque te pide mes inicial y final da lo mismo, si introduces primero el final y luego el inicial hace lo mismo.
No se hasta que punto necesitas explicaciones. Se pide el nombre del primer mes hasta que es un texto que aparezca en la primera fila o pongas un nombre vacío y pulse cancelar. En estos dos últimos casos se abandona. Luego se hace lo mismo con el otro mes. Ysi los dos meses son válidos se pone a cero las columnas intermedias.
Ucol significa última columna y Ufil última fila.
Si no entiendes algo pregúntamelo. Y si ya está bien no olvides puntuar.
Ahora mismo me pongo a enviarte el fichero para que lo pruebes, ojala te sirva.