title: Excel VBA to Copy Multiple Ranges and paste to another sheet, no empty rows
body: <p>After researching and testing, it seems fairly basic to simply copy a range of data in Excel on one sheet, keep just the values and paste them into another. What I'm trying to achieve is to have a time card template that is used week after week.  After filling out the week's info I click the diskette symbol copying all the data and pasting into the ARCHIVE sheet after the next available row.  Then another script is attached to the recycling bin symbol the clears the entries so it's ready for the next week.  Oh, also the Copy machine symbol just creates a copy that can be filed away or sent to payroll. However, I'm running into a problem because I'm copying multiple ranges and they won't always have values in EVERY row of each range. (some days I'm just on one job, other days all the rows may have values) It seems the results show the blank rows as well. I would like a nice clean continuous archive of all the data without having to delete blank rows.  I thought that the "SkipBlanks" part of the code would eliminate that, but not so. </p>
  
  <p>Could the VBA be changed to eliminate the blanks?</p>
  
  <pre><code>Sub SaveToArchive()
  
  response = MsgBox("Are You Sure?", vbYesNo)
  
  If response = vbNo Then
  MsgBox ("Goodbye!")
  Exit Sub
  
  End If
  
  Sheets("MAIN").Range("A6:K11,A14:K19,A22:K27,A30:K35,A38:K43,A46:K50").Copy
  
  Sheets("ARCHIVE").Select
  Range("A65536").End(xlUp)(2).Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
  Range("A1").Select
  
  Sheets("MAIN").Select
  Range("B3").Select
  
  SendKeys ("{ESC}")
  
  
  
  End Sub
  </code></pre>