Welcome to the forum
Maybe something like the below would be easier to read:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C17")) Is Nothing Then
Select Case Range("C17").Value
Case "AAA"
Rows("21:31").Hidden = True
Case "BBB"
Rows("18:20").Hidden = True
Rows("24:31").Hidden = True
Case "CCC"
Rows("18:23").Hidden = True
Rows("26:31").Hidden = True
Case "DDD"
Rows("18:25").Hidden = True
Rows("29:31").Hidden = True
Case "EEE"
Rows("18:28").Hidden = True
Case ""
Rows("18:31").Hidden = False
End Select
End If
End If
End Sub
Hope this helps