Try this
Option Explicit
Sub Equal()
Dim c As Range
Dim LR As Long, maxLR As Long, colNo As Long
For colNo = Range("D:G").Column To Range("D:G").Column + Range("D:G").Columns.Count - 1
LR = Cells(Rows.Count, colNo).End(xlUp).Row
If LR > maxLR Then maxLR = LR
Next
LR = maxLR
With Range("D2:G" & LR)
.Value = Evaluate("IF(ROW(" & .Address & "),clean(trim(" & .Address & ")))")
End With
LR = Range("J" & Rows.Count).End(xlUp).Row
For Each c In Range("J2:J" & LR)
If c.Formula = True Then c.Value = c.Value
Next c
LR = Range("E" & Rows.Count).End(xlUp).Row
Range("E2:E" & LR).Replace What:="-", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
For colNo = Range("D:H").Column To Range("D:H").Column + Range("D:H").Columns.Count - 1
LR = Cells(Rows.Count, colNo).End(xlUp).Row
If LR > maxLR Then maxLR = LR
Next
LR = maxLR
Range("D2:H" & LR).Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End Sub
If this doesn't work
A sample workbook would help to clear up any guesswork
Cheers
EDIT:
Missing lines
Sorry for that.
Better if each section is written as a function.
Bookmarks