Why can't I get this to work?

Just want to automatically hide each column (from E to W) that has a capital X in row 3....

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Long
If Target.Row = 3 Then
For x = 4 To 25
    If UCase(Cells(3, x).Value) = "X" Then
        Columns(x).Hidden = True
    Else
        Columns(x).Hidden = False
    End If
End If
Next
End Sub