Here's what I have so far:
Sub TrimColumnD()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Dim c As Range
For Each c In ActiveSheet.UsedRange.Columns("D").Cells
c.Value = WorksheetFunction.Trim(c.Value)
Next c
Next ws
End Sub
The trim function only works on the cells in the first worksheet.
Please change this line:
For Each c In ActiveSheet.UsedRange.Columns("D").Cells
into this one:
For Each c In ws.UsedRange.Columns("D").Cells
In your code internal loop refers to activesheet while it should refer to ws variable
representing sheet.