![]() |
how to define a range
I'm trying to create a small VBA program for sorting a range by 3
paramters by using the Recording Macro tool. the table to sort is varying by the rows between times of sorting Before begining the recording I choose the active cell to be on the table header row and then entered the following sequensce: <end <left arrow <shift<end<down arrow (while continue holding the <shift) <left aroow 13 times - to reach the right botom of the table (some of the culomns are not filled) and then I did the sorting. following is what was actually recorded: Selection.End(xlToLeft).Select Range(Selection, Selection.End(xlDown)).Select ActiveCell.Range("A1:N1511").Select Selection.Sort Key1:=ActiveCell.Offset(0, 11).Range("A1"), Order1:= _ xlAscending, Key2:=ActiveCell.Offset(0, 13).Range("A1"), Order2:=xlAscending _ , Key3:=ActiveCell.Offset(0, 8).Range("A1"), Order3:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _ xlSortNormal End Sub in the 3rd row the range was transormed to fix range (?) how to fix it? Regards, nk |
how to define a range
hi,
The recorder will sometimes adds extra and unnecessary lines of code. The recorder is a good way to start a macro but it's always a good idea to go back and clean it up. Replace the first three lines with..... 1.Range("A1").Select Range(Range("A1"), Range("A1").End(xlToRight).End(xlDown)).Select OR 2.Range("A1").Select ActiveCell.CurrentRegion.Select Either way should work. regards FSt1 "nk" wrote: I'm trying to create a small VBA program for sorting a range by 3 paramters by using the Recording Macro tool. the table to sort is varying by the rows between times of sorting Before begining the recording I choose the active cell to be on the table header row and then entered the following sequensce: <end <left arrow <shift<end<down arrow (while continue holding the <shift) <left aroow 13 times - to reach the right botom of the table (some of the culomns are not filled) and then I did the sorting. following is what was actually recorded: Selection.End(xlToLeft).Select Range(Selection, Selection.End(xlDown)).Select ActiveCell.Range("A1:N1511").Select Selection.Sort Key1:=ActiveCell.Offset(0, 11).Range("A1"), Order1:= _ xlAscending, Key2:=ActiveCell.Offset(0, 13).Range("A1"), Order2:=xlAscending _ , Key3:=ActiveCell.Offset(0, 8).Range("A1"), Order3:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _ xlSortNormal End Sub in the 3rd row the range was transormed to fix range (?) how to fix it? Regards, nk |
All times are GMT +1. The time now is 04:15 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com