title: Excel 2013 VBA use successive columns to sort large range
body: <p>I've tried to research why this isn't working, but I've hit a wall, because, so far as I can tell, my code ought to be doing the trick...</p>
  
  <p>My situation is that I'm building a spreadsheet to simplify a budget reporting process for my office. As I'm the only one with a half-decent understanding of Excel, I want to make this as braindead and simple for the other users as possible. To that end, <em>VBA to the rescue!</em> as it will take care of importing the data and doing all the sorting for me (them) with just one click.</p>
  
  <p>The imported data is 24 columns wide and may grow to as much as 2500 lines by year-end. Once the data is imported, I need to sort by mulitple column types, one after the other, sucessively. So:
  - Import data
  - sort by date
  - sort by transacation type
  - sort by billed budget
  - etc (6 sorts total)</p>
  
  <p>This is my code at the moment:</p>
  
  <pre><code>Sub RefreshAll()
      Workbooks(ThisWorkbook.Name).RefreshAll
  
      With Worksheets("Detailed Budget Report")
          .Range("RC_number").CurrentRegion.Sort _
              key1:=Range("Sort_1st"), order1:=xlAscending, _
              key2:=Range("Sort_2nd"), order2:=xlAscending, _
              Header:=xlYes
      End With
  End Sub
  </code></pre>
  
  <p>The <strong>refresh all</strong> will pull from the import file anew, to make sure the spreadsheet is up-to-date. Then, I've got to sort it all. Thanks to the brilliant response at the bottom of <a href="https://stackoverflow.com/questions/27571923/sorting-worksheet-data-by-column-values-using-excel-vba">this post</a>, I learned about using range names, and <a href="http://www.informit.com/articles/article.aspx?p=2021718&amp;seqNum=5" rel="nofollow noreferrer">this page</a> showed me how to reference other worksheets.</p>
  
  <p>Here's the problem: only the first sort key is working. The code doesn't throw an error, it doesn't halt, it <em>appears</em> to execute correctly. But, only the first sort argument gets actioned; no matter what range I input as the first key, nor what range I enter as the second, only the first gets sorted.</p>
  
  <p>Can anybody help me figure out what I'm doing wrong?</p>
  
  <p>Thanks in advance!</p>