Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sort Macro Compatibility
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sort Macro Compatibility
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. Dan wrote: 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 -- Dave Peterson |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sort Macro Compatibility
Thank you very much Dave. I thought it might be something as easy as that.
"Dave Peterson" wrote: 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. Dan wrote: 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 -- Dave Peterson |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sort Macro Compatibility
Thank you Dave. I thought it might be something simple like that. Thanks so
much for the quick reply. "Dave Peterson" wrote: 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. Dan wrote: 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 -- Dave Peterson |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Testing Reverse Compatibility and Compatibility in General | Excel Discussion (Misc queries) | |||
Macro Compatibility | Excel Programming | |||
Macro compatibility with Excel 97 | Excel Programming | |||
Macro compatibility between excel XP and 97 | Excel Programming | |||
Macro Compatibility | Excel Programming |