I have a spreadsheet with about 12 columns of data and 600 rows. I need to copy these columns from one sheet to another but they must be in a specific order. The header row cell values are the same in both sheets, so that's what I'm using to search by. Is there a way I can do a loop to run through my header values find which ones I need to copy and then copy to the last row of data for each column?

This is what I've used in other projects and it works well, except that it doesn't copy them in the order listed, it just finds the first value that matches something in the list and pastes it. :

Sub selectiveCopy()
Dim bottom As Range, headerRow As Range, cell As Range
Set headerRow = Range("1:1")
For Each cell In headerRow
Select Case cell.Value
Case "value1 to copy", "value2 to copy", "value3 to copy"
Set bottom = Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, _
cell.Column)
If bottom.Value <> "" Then
Range(cell.Address & ":" & bottom.Address).Copy
Else
Range(cell.Address & ":" & Cells(bottom.End(xlUp).Row, _
cell.Column).Address).Copy
End If
'code here to paste wherever you want it
End Select
Next
End Sub
Any help is greatly appreciated! Thank you!