4

多数のリストを A から Z まで並べ替えようとしていますが、列 A を並べ替えると、他のすべての列が再配置されることは望ましくありません。これらすべてのリストを個別にアルファベット順にソートする必要があります。1つずつ実行できることはわかっていますが、278列あります。それを自動化する方法はありますか?

4

2 に答える 2

4

どの列のデータにも空白のセルがない場合、次の方法はわずかに異なるアプローチであり、行数の最大値を想定していません。

Sub SortIndividualJR()
    Dim rngFirstRow As Range
    Dim rng As Range
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    Set ws = ActiveSheet
    Set rngFirstRow = ws.Range("A1:JR1")
    For Each rng In rngFirstRow
        With ws.Sort
            .SortFields.Clear
            .SortFields.Add Key:=rng, Order:=xlAscending
            'assuming there are no blank cells..
            .SetRange ws.Range(rng, rng.End(xlDown))
            .Header = xlYes
            .MatchCase = False
            .Apply
        End With
    Next rng
    Application.ScreenUpdating = True
End Sub

user1281385 のコードに問題はありません。私が言うように、これは単なる代替手段です。

追加いくつかの空白がある場合は、上記のコードを使用するよう.SetRange ws.Range(rng, rng.Range("A1000").End(xlUp))に変更し、1000 を期待する値に変更すると、データ行の最大数よりも大きくなります。

于 2013-06-21T18:52:22.127 に答える
2

並べ替えたい列を選択し、[並べ替えとフィルター] を押すと、ボックスが表示されます。

Expand selection
continue with current selection

現在の選択で続行を選択

次に、並べ替え方法を選択します。並べ替えたい列ごとに繰り返します。

選択範囲の拡張がデフォルトのオプションです

大きい

範囲としての1つの範囲を薄暗くする
aCell を範囲として暗くする
I=1~278の場合
    set oneRange = Range("r1c" & I & ":r1000c" & I)
    Set aCell = Range("r1c" & I)
    oneRange.Sort Key1:=aCell、Order1:=xlAscending、Header:=xlYes
次は

動作するはずです

于 2013-06-21T17:49:49.707 に答える