Sort Macro Compatibility

  • Thread starter Thread starter Dan
  • Start date Start date
D

Dan

Can someone help me understand why this macro works in Excel 2007 but not on
Excel 2003?

Sub Sort_Donors()
'
' Sort_Donors Macro
'
' Keyboard Shortcut: Ctrl+Shift+S
'
Application.Goto Reference:="NameList"
ActiveWorkbook.Worksheets("Donor List").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Donor List").Sort.SortFields.Add
Key:=ActiveCell. _
Range("A1:A100"), SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("Donor List").Sort
.SetRange ActiveCell.Offset(-1, 0).Range("A1:A101")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
End Sub
 
The syntax for sorting has changed from xl2003 to xl2007 (when you recorded your
macro).

But the good thing is that both versions still will work with the old syntax.

With worksheets("Donor List")
with .range("NameList")
.cells.sort key1:=.columns(1), order1:=xlAscending, header:=xlNo
end with
end with

It looks like you're including the header and then resizing the range (including
that header). The code I suggested just ignores that header row and says that
the range doesn't haven't headers.
 
Thank you Dave. I thought it might be something simple like that. Thanks so
much for the quick reply.
 
Back
Top