Compatibilidad macro excel 2010 con excel 2003

Buenas noches,

Tengo la siguiente pregunta: ¿hay compatibilidad entre código vb excel 2010 y excel 2003?

Expongo mi caso:

Tengo una macro en excel 2010:

Private Sub Worksheet_Activate()
Range("A3:M5000").Select
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("J3:J5000"), _ SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
"Pagado, Solicitado, No pagado", DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range("A3:A5000"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Hoja1").Sort
.SetRange Range("A3:M5000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("a4").Select
End Sub

Esta macro funciona perfectamente en excel 2010 pero en excel 2003 me da error '438' en tiempo de ejecución: el objeto no admite esta propiedad o método.

Se que es porque en excel 2003 no vale el código escrito en 2010.

Mi pregunta es si se puede adaptar este código a excel 2003 o, mejor, si hay posibilidad de que la macro detecte la versión de excel y en función de ella que ejecute código que funcione en una u otra versión.

Gracias por anticipado.

Un saludo

Añade tu respuesta

Haz clic para o