Question posted 2014 · +2 upvotes
I am attempting to sort column D in ascending order in an excel file with VBA. I would like to expand the selection for all values in Column A-F.
I’ve used this formula as a starting point:
sort ascending/descending vba excel
It only sorts one column and in descending order. I am having trouble finding more examples.
LastRow = .Cells(.Rows.Count, "D").End(xlUp).Row
If (.Range("D2").Value > .Range("D" & CStr(LastRow))) Then
xlSort = xlAscending
End If
.Range("D2:D" & LastRow).Sort Key1:=.Range("D2"), Order1:=xlSort, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Accepted answer +9 upvotes
Here is the answer:
.Range("D1") = "Index"
.Columns("A:F").Sort key1:=Range("D2"), _
order1:=xlAscending, Header:=xlYes
Thanks to simoco’s comment!
Excel VBA objects referenced (5)
Range— Refer to Cells by Using a Range ObjectRange— Delete Duplicate Entries in a RangeRows.Count— Count function (Microsoft Access SQL)Rows.Count— Count the number of records in a DAO RecordsetSelection— Working with the Selection Object
Top excel-vba Q&A (6)
- How to clear the entire array? +58 (2010)
- How to change Format of a Cell to Text using VBA +55 (2011)
- Download attachment from Outlook and Open in Excel +43 (2012)
- Can a VBA function in Excel return a range? +36 (2009)
- 2 Dimensional array from range +34 (2013)
- Hiding an Excel worksheet with VBA +33 (2009)
excel-vba solutions on this site
.