web-dev-qa-db-ja.com

VBA Excel:列の各セルに対して関数を実行し、すべてのワークブックをループする方法は?

ここに私がこれまで持っているものがあります:

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

関数trimは最初のワークシートのセルでのみ機能しますが、それだけです。助言がありますか?

前もって感謝します

9
user2510323

この行を変更してください:

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

これに:

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

コードでは、内部ループはactivesheetを参照しますが、ws variableを表すシートを参照する必要があります。

14
Kazimierz Jawor