VBA Excel: Como executar uma função para cada célula em uma coluna e fazer um loop por todas as pastas de trabalho?

Aqui está o que eu tenho até agora:

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

A função trim funciona apenas nas células da primeira planilha, mas é isso. Alguma sugestão?

desde já, obrigado