I found the macro below which works perfectly if you just want to click in one cell.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("P31")) Is Nothing Then
            Call Macro1
        End If
    End If
End Sub
The problem is I want to run different macros if I click different cells. I thought I could combine all of them in one as per below, but it didn't work.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("P31")) Is Nothing Then
            Call Macro1
        If Not Intersect(Target, Range("Q10")) Is Nothing Then
            Call Macro2
        If Not Intersect(Target, Range("U25")) Is Nothing Then
            Call Macro3
        End If
    End If
End Sub
Any ideas?

Thanks,