Variable Range Sort
Got it... changed LastRow to be....
LastRow = .Range("A3").End(xlDown).Row
"Brian" wrote:
Close, but it keeps sorting the rows below also because I have some data
under the end of the data that is entered in. It needs to only sort A3:L and
the end of the data at that point. If I for example highlight A3:L3 and do
ctrl shift down it get's to the end of my data that I want to sort and stops
prior to data below that does not need to be sorted.
"Dave Peterson" wrote:
Dim wks as worksheet
dim LastRow as long
dim myRng as range
set wks = worksheets("SomeSheetNameHere") 'or activesheet '???
with wks
lastrow = .cells(.rows.count,"A").end(xlup).row
set myrng = .range("A3:L" & lastrow)
end with
with myrng
.cells.sort _
Key1:=.Columns(5), Order1:=xlAscending, _
key2:=.columns(3), order2:=xldescending, _
Header:=xlno, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
end with
I used column A to determine the last used row. You may need to change this.
And I specified that the range did not have headers. Change that if row 3 is a
header row. But don't let excel guess. You know your data better than excel --
and excel can guess wrong!
Brian wrote:
Hello I am trying to setup a macro to sort a variable range. I need to sort
from A3 to L, but the L row would be variable... I know if I select A3:L3 and
then do End(xlDown) that would be a start but I am not sure how exactly to
work this into the sort portion.....
A start is....
Range("A3:L3").Select
Range(Selection, Selection.End(xlDown)).Select
but I am stuck now... I can't figure out how to set the range in sort to
something like that. I need to sort ascending with column E then secondary
with column C.
--
Dave Peterson
.
|