Pues en principio creía que tenías razón (yo pensaba lo mismo), pero ejecuta esto y verás:
Código:
Private Sub Worksheet_Change(ByVal Target As Range)
'Si ponemos un dato en A1, nos pone el mismo dato en A2
If Target.Row = 1 And Target.Column = 1 Then
If Range("a1").Value <> "" Then
Range("a2").Value = Range("a1").Value
End If
End If
'Si ponemos un dato en A2, nos pone el mismo dato en A1
If Target.Row = 2 And Target.Column = 1 Then
If Range("a2").Value <> "" Then
Range("a1").Value = Range("a2").Value
End If
End If
End Sub
Funciona, y tiene su lógica, porque la celda que cambia, es solo una, y por tanto solo puede ejecutarse un condicional de los dos que se incluyen en el procedimiento que llama al evento Change.