Se puede hacer por VBA. El código básico para esconder o mostrar filas es el siguiente:
Range("10:20").Select
Selection.EntireRow.Hidden = True
La primera linea selecciona las filas, en el ejemplo de la 10 a la 20, luego en la segunda fila se esconden con True. (False para mostrarlas)
Ahora bien, suponiendo que el checkbox es un Activex Control (y si no, te recomiendo que uses ese mejor) le das click derecho y seleccionas "View Code" o "Ver Código"
en el editor de código de VBA pegas lo siguiente:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("22:44").Select
Selection.EntireRow.Hidden = False
Else
Range("22:44").Select
Selection.EntireRow.Hidden = True
End If
End Sub
Ahora bien, según entiendo, esas filas estarán siempre ocultas y solo se mostraran si se selecciona el checkbox. Suponiendo que el nombre del control sea por defecto "CheckBox1" pero si lo cambiaste también debe cambiar en el código. Y así harías con todos, de manera que te quedaría así todo el código completo para los 4 checkbox:
Private Sub CheckBox1_Click()
Application.ScreenUpdating = False
If CheckBox1.Value = True Then
Range("22:44").Select
Selection.EntireRow.Hidden = False
Else
Range("22:44").Select
Selection.EntireRow.Hidden = True
End If
Application.ScreenUpdating = True
End Sub
Private Sub CheckBox2_Click()
Application.ScreenUpdating = False
If CheckBox2.Value = True Then
Range("46:50").Select
Selection.EntireRow.Hidden = False
Else
Range("46:50").Select
Selection.EntireRow.Hidden = True
End If
Application.ScreenUpdating = True
End Sub
Private Sub CheckBox3_Click()
Application.ScreenUpdating = False
If CheckBox3.Value = True Then
Range("52:60").Select
Selection.EntireRow.Hidden = False
Else
Range("52:60").Select
Selection.EntireRow.Hidden = True
End If
Application.ScreenUpdating = True
End Sub
Private Sub CheckBox4_Click()
Application.ScreenUpdating = False
If CheckBox4.Value = True Then
Range("62:84").Select
Selection.EntireRow.Hidden = False
Else
Range("62:84").Select
Selection.EntireRow.Hidden = True
End If
Application.ScreenUpdating = True
End Sub
Si te fijas cada uno tiene la instrucción: Application.ScreenUpdating = False/True. Eso no es obligatorio pero yo prefiero usarlo cuando hago cambios en las hojas, así es menos visible los saltos de Excel cuando hace cambios.
Cuando marcas un Checkbox para mostrar las filas, se va a seleccionar todas las filas de ese rango, lo puedes dejar así si quieres, pero si quieres seleccionar una en especifico agrega:
Range("aqui la celda o rango que quieras"). Select
Eso iría después de cada Selection.EntireRow.Hidden = False
Cualquier duda déjame saber