0

複数のテーブルを 1 つのテーブルに結合することなく、同じシート内の複数のテーブルを並べ替えるには、vba コードが必要です。B14:V18、B21:V39、B42:V108 のデータ範囲があります。列 L の値に基づいてデータを並べ替える必要があります。ただし、各テーブルの行数は特定の日に変わる可能性があるため、動的にする必要があります。Excel で通常の並べ替え機能を使用すると、すべてのデータが 1 つのテーブルにマージされ、データが個別に保持されません。

列は常に B:V ですが、行は変化します。同様に、次のテーブルは常に前のテーブルの最後のセルの 3 行下に配置されます。

4

2 に答える 2

2

私はこのスレッドが死んでいることを認識していますが、OPの問題に対する解決策を提供したいと考えていました. Doug のマクロを使用したところ、OP と同じ問題が発生しました。.SortFields.Clear行の前に追加しただけ.SortFields.Addで、マクロが正しく実行されました。2 つのソート基準を使用したコードについては、こちらの投稿を参照してください。

Sub SortTables()
Dim lo As Excel.ListObject
Dim ws As Excel.Worksheet

Set ws = ActiveSheet
For Each lo In ws.ListObjects
    With lo.Sort
        .SortFields.Clear
        .SortFields.Add Key:=lo.ListColumns("test2").Range, Order:=xlAscending
        .Header = xlYes
        .Apply
    End With
Next lo
End Sub
于 2014-11-12T06:54:53.983 に答える
1

これにより、アクティブ ワークシートのすべてのテーブルが "test3" という名前の列で並べ替えられます。テーブルがシート上にどのように配置されていても機能するはずです。

Sub SortTables()
Dim lo As Excel.ListObject
Dim ws As Excel.Worksheet

Set ws = ActiveSheet
For Each lo In ws.ListObjects
    With lo.Sort
        .SortFields.Add Key:=lo.ListColumns("test2").Range, Order:=xlAscending
        .Header = xlYes
        .Apply
    End With
Next lo
End Sub

Excel 2010 でテスト済み

于 2013-05-30T14:02:53.167 に答える