title: Copy all worksheets into one sheet
body: <p>I am trying to write an excel macro that will copy all my worksheets into one single worksheet.</p>
  
  <p>All worksheets are layed out the same, 4 columns with data in every cell of every row. Each sheet has a header. I am trying to copy the prefiltered data from each sheet to a results sheet, the data from each sheet will be stacked on top of each other.</p>
  
  <p>So far this is what I have and it's almost working.</p>
  
  <pre><code>Dim sh As Worksheet
  Dim iRows As Long
  
  iRows = 0
  
  For Each sh In ActiveWorkbook.Worksheets
  
  sh.Select
  Range("A1").Select
  Selection.Offset(1, 0).Select
  Range(Selection, Selection.End(xlToRight)).Select
  Range(Selection, Selection.End(xlDown)).Select
  Selection.Copy
  
  Worksheets("Results").Select
  Range("A1").Select
  Selection.Offset(iRows, 0).Select
  Selection.PasteSpecial Paste:=xlPasteValues
  
  iRows = Worksheets("Results").UsedRange.Rows.Count
  Next sh
  </code></pre>
  
  <p>My offset is incorrect, when I copy over the next sheet I copy over the data it copies over the previous row.</p>
  
  <p>If anyone can help out that would be great, if you could also explain what I am doing wrong here as well that would be great as I'm new to excel and VBA. I'm guess that I don't understand how the paste works correctly?</p>