Try this
Code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Or Target.Address <> "$A$1" Then Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
On Error GoTo reset
Select Case Target.Value
Case 2022
If Target.Offset(, 2) = 2023 Then
Columns("R:W").EntireColumn.Hidden = True
Columns("I:N,U:W").EntireColumn.Hidden = False
End If
Case 2023
If Target.Offset(, 2) = 2025 Then
Columns("I:N,U:W").EntireColumn.Hidden = True
Columns("R:W").EntireColumn.Hidden = False
End If
Case Else: Columns("I:N,R:W").EntireColumn.Hidden = False
End Select
reset:
Err.Clear
.EnableEvents = True
End With
End Sub
Display More