I'm not sure if there's a better solution, but I can help you with your existing code.
Rather than using the active cell for everything, you would be better off defining ranges. It makes it much easier to keep track of where you are and means you can 'store' more than one cell at a time. For example:
Sub CSVCONSOL24()
'Grabs Part TWC Cell
Dim a As Integer, b As Integer, Cl As Range
Rows("1:1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Let a = Selection.Rows.Count
Cells(1, 2).Select
For b = 1 To a
Sheets("0309").Activate
Set Cl = Cells(b, 2)
If Cl.Value = "TWC #" Then
Cl.Offset(1, 0).Select
If ActiveCell.Value = "" Then
ActiveCell.FormulaR1C1 = "-"
End If
Sheets("Table").Activate
Range("Z1").Select
Selection.End(xlDown).Select
'***************
If ActiveCell.Value <> Cl.Value Then
ActiveCell.Offset(1, 0).Value = Cl.Value
End If
'****************
End If
Next b
End Sub
I have left in most of your ActiveCell references as I'm unsure exactly what some of your tests are for, but as you can see I have defined a range to hold the cell with the value you are comparing.
Bookmarks