2013-06-21 27 views
9

Ecco quello che ho finora:VBA Excel: come eseguire una funzione per ogni cella in una colonna e passare attraverso tutte le cartelle di lavoro?

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 

La funzione di assetto funziona solo sulle cellule del primo foglio di lavoro, ma questo è tutto. Eventuali suggerimenti?

Grazie in anticipo

+2

Assicurati di formattare il codice in modo chiaro con i rientri appropriati. È anche una buona idea dichiarare la variabile insieme nella parte superiore del sottotitolo. –

risposta

13

è necessario modificare questa riga:

For Each c In ActiveSheet.UsedRange.Columns("D").Cells 

in questo:

For Each c In ws.UsedRange.Columns("D").Cells 

Nel codice loop interno si riferisce a ActiveSheet mentre dovrebbe fare riferimento a ws variable rappresentante il foglio.

Problemi correlati