VBA Code to sort an Excel Column in Ascending Order and Expand Selection?

calendar_today Asked Mar 24, 2014
thumb_up 9 upvotes
history Updated April 16, 2026

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 Object
  • Range — Delete Duplicate Entries in a Range
  • Rows.Count — Count function (Microsoft Access SQL)
  • Rows.Count — Count the number of records in a DAO Recordset
  • Selection — Working with the Selection Object

Top excel-vba Q&A (6)

+9 upvotes ranks this answer #73 out of 136 excel-vba solutions on this site .