EDIT: try this - I think it's close to what you're trying to do.
Sub Macro_CopyData()
Dim sht As Worksheet, cell As Range, myRange As Range
Dim arrHeaders, pre, rw As Range
Dim A, B, C, D, E, F, G, H, I, J, K, L, M
Set sht = ActiveSheet
With sht.Range("B1:X10000")
.ClearContents
.NumberFormat = "@"
End With
arrHeaders = Array("ColumnA", "ColumnB", "ColumnC", "ColumnD", _
"ColumnE", "ColumnF", "ColumnG", "ColumnH", _
"ColumnI", "ColumnJ", "ColumnK", "ColumnL", _
"ColumnM")
'place headers on sheet
sht.Cells(1, 2).Resize(1, UBound(arrHeaders) + 1).Value = arrHeaders
Set myRange = sht.Range(sht.Cells(2, 1), _
sht.Cells(Rows.count, 1).End(xlUp))
For Each cell In myRange.Cells
Set rw = cell.EntireRow
pre = Left(cell.Value, 3)
Select Case pre
Case "000"
A = Mid(cell.Value, 4, 5)
B = Mid(cell.Value, 20, 8)
C = Mid(cell.Value, 28, 3)
Case "010"
D = Mid(cell.Value, 4, 5)
E = Mid(cell.Value, 20, 8)
Case "020"
F = Mid(cell.Value, 12, 15)
G = Mid(cell.Value, 65, 1)
H = Mid(cell.Value, 66, 25)
Case "030"
rw.Cells(2).Value = A
rw.Cells(3).Value = B
rw.Cells(4).Value = C
rw.Cells(5).Value = D
rw.Cells(6).Value = E
rw.Cells(7).Value = F
rw.Cells(8).Value = G
rw.Cells(9).Value = H
rw.Cells(10).Value = Mid(cell.Value, 4, 30)
rw.Cells(11).Value = Mid(cell.Value, 34, 30)
rw.Cells(12).Value = Mid(cell.Value, 64, 30)
rw.Cells(13).Value = Mid(cell.Value, 94, 30)
rw.Cells(14).Value = Mid(cell.Value, 154, 23)
End Select
Next cell
End Sub