title: Multi-column sort with VBA
body: <p>I'm using VBA to sort columns in Excel 2003. I need to sort by column 5 ascending, then column 3 using a custom order, then by column 4 ascending. I'm having difficulty getting the sort to work and I don't totally understand how OrderCustom applies.</p>
  
  <p>Any pointers in the right direction would be appreciated :) My code is below.</p>
  
  <pre><code>With wsData
      lastrow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
      lastCol = .Cells(4, Columns.Count).End(xlToLeft).Column
  
      Dim n As Long
      Application.AddCustomList ListArray:=Array("LOW", "MEDIUM OR HIGH", "HIGH ONLY")
      n = Application.GetCustomListNum(Array("LOW", "MEDIUM OR HIGH", "HIGH ONLY")) + 1
  
      Dim strSortOrder As String
      .Range(.Cells(1, 1), .Cells(lastrow, lastCol)).Sort _
          Key1:=.Range(.Cells(2, 5), .Cells(lastrow, lastCol)), Order1:=xlAscending, _
          Key2:=.Range(.Cells(2, 3), .Cells(lastrow, lastCol)), Order2:=xlDescending, _
          Key3:=.Range(.Cells(2, 4), .Cells(lastrow, lastCol)), Order3:=xlDescending, _
          OrderCustom:=n, _
          MatchCase:=False, Orientation:=xlSortColumns, Header:=xlYes
  End With
  </code></pre>