The loop is killing you. This will remove spaces in an entire column in one shot:
Sub SpaceKiller()
Worksheets("Sheet1").Columns("A").Replace _
What:=" ", _
Replacement:="", _
SearchOrder:=xlByColumns, _
MatchCase:=True
End Sub
Adjust the range to suit. If you want to remove double spaces, then:
Sub SpaceKiller()
Worksheets("Sheet1").Columns("A").Replace _
What:=" ", _
Replacement:=" ", _
SearchOrder:=xlByColumns, _
MatchCase:=True
End Sub
EDIT#1:
This version will replace doubles with singles and then check if there are still still doubles left!
Sub SpaceKiller3()
Worksheets("Sheet1").Columns("A").Replace _
What:=" ", _
Replacement:=" ", _
SearchOrder:=xlByColumns, _
MatchCase:=True
Set r = Worksheets("Sheet1").Columns("A").Find(What:=" ")
If r Is Nothing Then
MsgBox "done"
Else
MsgBox "please run again"
End If
End Sub
You can re-run until you see done
EDIT#2:
based on Don Donoghue's comment, this version will run recursively until all double are converted to singles:
Sub SpaceKiller3()
Worksheets("Sheet1").Columns("A").Replace _
What:=" ", _
Replacement:=" ", _
SearchOrder:=xlByColumns, _
MatchCase:=True
Set r = Worksheets("Sheet1").Columns("A").Find(What:=" ")
If r Is Nothing Then
MsgBox "done"
Else
Call SpaceKiller3
End If
End Sub