I believe that TrowaD has already coverd this for you here:-
However, I see that you have some additional conditions to be met, so a slight adjustment to Trowa's code, as follows, should do the task for you:-
Dim ws As Worksheet
Dim ar As Variant
ar = Array("-", " -", "- ")
For Each ws In Worksheets
ws.Range("D11:D510").Replace What:=ar, Replacement:=vbNullString, _
As you can probably see, we are just using an array to include all of the conditions.
It would be a good idea if you could give us an example of how you are actually using the text in Column D with the conditions you wish to replace as I feel that you may have further questions to ask.
I hope that this helps.