This line brings in the data perfectly however, it doesn't follow the order of each range (left to right). It puts E68:BF69 after E65:BF66
Sht.Range("E65:BF66,E80:BF81,E94:BF95,E83:BF84,E96:BF97,E98:BF106,E68:BF69,E118:BF119,E132:BF133,E121:BF122,E134:BF135,E136:BF144").Copy
So I tried this but it didnt work:
Sht.Range(Range("E65:BF66,E80:BF81,E94:BF95,E83:BF84,E96:BF97,E98:BF106"),Range("E68:BF69,E118:BF119,E132:BF133,E121:BF122,E134:BF135,E136:BF144")).Copy
Code: Select all
Sub CombineAllData4()
Dim shM As Worksheet
Dim Sht As Worksheet
Dim r As Long
Application.ScreenUpdating = False
Set shM = Worksheets("Data4")
' Clear the Data sheet
shM.Range("2:" & shM.Rows.Count).ClearContents
For Each Sht In ActiveWorkbook.Worksheets
Select Case Sht.Name
Case "Schedule", "Hours", "Attrition", "Orientation", "Actuals", "ClassDist", "Data", "Data2", "Data3", "Data4", "Data5", "Data6"
' Ignore these sheets
Case Else
r = shM.Range("A" & shM.Rows.Count).End(xlUp).Row + 1
shM.Range("A" & r).Resize(38).Value = Sht.Name
' Copy range, then paste values
Sht.Range("E65:BF66,E80:BF81,E94:BF95,E83:BF84,E96:BF97,E98:BF106,E68:BF69,E118:BF119,E132:BF133,E121:BF122,E134:BF135,E136:BF144").Copy
shM.Range("B" & r).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End Select
Next Sht
Application.ScreenUpdating = True
End Sub