Re: Out of memory error
this line looks suspicious:
ActiveCell.EntireRow.Value = dateValue
It's trying to apply a value to an entire row...maybe it's just supposed to be a single cell?
Here's your whole code, simplified down a bit. Removed selections, turned off screen updating. Cleared clipboard at end.
Sub CombineData()
Dim Sht As Worksheet
Dim yy As String
Dim mm As String
Dim dd As String
Dim hh As String
Dim dateStr As String
Dim dateValue As Double
Dim strName As String
Dim searchRange As Range
Dim findRow As Range
Application.ScreenUpdating = False
Worksheets.Add(After:=Worksheets(1)).Name = "24-hr PM2.5"
Worksheets.Add(After:=Worksheets(1)).Name = "8-hr Carbon Monoxide"
Worksheets.Add(After:=Worksheets(1)).Name = "8-hr Ozone"
Worksheets.Add(After:=Worksheets(1)).Name = "1-hr Nitrogen Dioxide"
Worksheets.Add(After:=Worksheets(1)).Name = "24-hr PM10"
Worksheets.Add(After:=Worksheets(1)).Name = "24-hr Sulphur Dioxide"
For Each Sht In ActiveWorkbook.Worksheets
With Sht
strName = .Name
If strName <> "Masterpage" And strName <> "24-hr PM2.5" And _
strName <> "24-hr Sulphur Dioxide" And strName <> "24-hr PM10" And _
strName <> "1-hr Nitrogen Dioxide" And strName <> "8-hr Ozone" And _
strName <> "8-hr Carbon Monoxide" Then
If Len(strName) = 10 Then
yy = Right(strName, 2)
mm = Mid(strName, 7, 2)
dd = Mid(strName, 5, 2)
hh = Left(strName, 2)
Else
yy = Right(strName, 2)
mm = Mid(strName, 6, 2)
dd = Mid(strName, 5, 1)
hh = Left(strName, 2)
End If
If hh = 24 Then
hh = 0
dateStr = "20" & yy & "/" & mm & "/" & dd & Space(1) & hh & ":" & "00" & ":" & "00"
dateStr = DateAdd("d", 1, dateStr)
Else
dateStr = "20" & yy & "/" & mm & "/" & dd & Space(1) & hh & ":" & "00" & ":" & "00"
End If
dateValue = CDate(dateStr)
Set searchRange = .Range("A1", .Range("A65536").End(xlUp))
Set findRow = searchRange.Find(what:="region", LookIn:=xlValues, lookat:=xlWhole)
'Base everything off of the findrow
findRow.Offset(2).EntireRow.Insert
findRow.Offset(2).Value = dateValue
'Transfer data
findRow.Offset(2, 6).Resize(5).Copy
Worksheets("24-hr PM2.5").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
findRow.Offset(2, 5).Resize(5).Copy
Worksheets("8-hr Carbon Monoxide").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
findRow.Offset(2, 4).Resize(5).Copy
Worksheets("8-hr Ozone").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
findRow.Offset(2, 3).Resize(5).Copy
Worksheets("1-hr Nitrogen Dioxide").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
findRow.Offset(2, 2).Resize(5).Copy
Worksheets("24-hr PM10").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
findRow.Offset(2, 1).Resize(5).Copy
Worksheets("24-hr Sulphur Dioxide").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
'Delete old record
.Range("162:162").Delete
End If
End With
Next Sht
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Display More