Re: Joining data with different DateTimes series in Excel or Access
Thanks for sample. Helps so much in determining what you are trying to do and allows me to test.
As long as all sheets have the same structure and there are only data sheets, this will work. Just paste it into a new module and run it.
Option Explicit
Sub CombineAndSort()
Dim k As Long
Dim iColumn As Long
Dim jRow As Long
Dim kTabs As Long
Dim datarows As Long
kTabs = ThisWorkbook.Sheets.Count
jRow = 1
iColumn = 1
'Create sheet that will hold data
Sheets.Add.Name = "All"
Sheets("all").Select
Sheets("All").Move after:=Sheets(kTabs + 1)
'put in the Date Time header
Worksheets(1).Range("a1").Copy
Worksheets("all").Range("a1").PasteSpecial
'loop through each sheet and collect data
For k = 1 To kTabs
datarows = Worksheets(k).UsedRange.Rows.Count
Worksheets(k).Select
Worksheets(k).Range(Cells(2, 1), Cells(datarows, 1)).Copy
Worksheets("All").Cells(jRow + 1, 1).PasteSpecial
Worksheets(k).Range(Cells(2, 10), Cells(datarows, 10)).Copy
Worksheets("All").Cells(jRow + 1, iColumn + 1).PasteSpecial
Worksheets("all").Cells(1, k + 1).Value = Worksheets(k).Name & "_Water Elevation"
iColumn = Worksheets("All").UsedRange.Columns.Count
jRow = Worksheets("All").UsedRange.Rows.Count
Next k
'Sort the data
Worksheets("All").Select
Range(Cells(1, 1), Cells(jRow, iColumn)).Select
ActiveWorkbook.Worksheets("All").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("All").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("All").Sort
.SetRange Range(Cells(1, 1), Cells(jRow, iColumn))
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Display More
Let me know if you need anything else.