View Single Post
  #9   Report Post  
Posted to microsoft.public.excel.programming
JLGWhiz JLGWhiz is offline
external usenet poster
 
Posts: 3,986
Default Sort Columns using lastrow

Hi Dave,
Haste makes waste! You're right about the PinYin and according to VBA help,
that is the default method. I think the OP tuned out anyhow.

"Dave Peterson" wrote:

I wouldn't use wks to represent a range <vbg. And I'd qualify that key1:=...
stuff.

And I thought that xlpinyin was for Chinese characters!

Sub SortJohnny()
Dim lastRow As Long
dim rng as range
lastRow = Sheets("Working Folder").Cells(Rows.Count).End(xlUp).Row
Set rng = Sheets("Working Folder").Range("A1:S" & lastRow)
rng.Sort Key1:=sheets("working folder").Range("N1"), Header:=xlYes, _
MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End Sub

JLGWhiz wrote:

This is the format and syntax that I use.

Sub SortJohnny()
Dim lastRow As Long
lastRow = Sheets("Working Folder").Cells(Rows.Count) _
.End(xlUp).Row
Set Wks = Sheets("Working Folder").Range("A1:S" & lastRow)
wks.Sort Key:=Range("N1"), Header:=xlYes, MatchCase:=False, _
Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End Sub

"Johnny" wrote:

Hi all, this is a snippet of VBA code that I recorded and added some
"lastrow" information into (line numbers added for the sake of my
question):

1 Dim lastrow As Integer
2 lastrow = Cells(Rows.Count, 1).End(xlUp).Row
3 Worksheets("Working Folder").Range("A1:" & "S" & lastrow).Select

4 ActiveWorkbook.Worksheets("Working Folder").Sort.SortFields.Clear
5 ActiveWorkbook.Worksheets("Working Folder").Sort.SortFields.Add
Key:=Range( _
""N:" & "N" & lastrow"), SortOn:=xlSortOnValues,
Order:=xlAscending, DataOption:= _
xlSortNormal
6 With ActiveWorkbook.Worksheets("Working Folder").Sort
7 .SetRange Range("A1:" & "S" & lastrow)
8 .Header = xlYes
9 .MatchCase = False
10 .Orientation = xlTopToBottom
11 .SortMethod = xlPinYin
12 .Apply
13 End With

I'm getting the compiler error: expected: list separator or ")". It is
failing in the section: ""N:" & "N" & lastrow

What I'm trying to accomplish is select A1 down to S(lastrow) and sort
by column N1:N(Lastrow). Hopefully I'm just missing a parenthesis or
another set of quotes? Thanks for assistance.


--

Dave Peterson