1

各列のタイトルが行 3
にある Excel ワークシートがあります。(Excel vba を介して) タイトル名に基づいて列 (列 D - Z) をアルファベット順に並べ替える方法を知りたいです。
ご指導ありがとうございます。

例えば。アレンジする前に

. . . . . column D | column E | column F | column G | ...  
row 1  
row 2  
row 3  zebra | car |  monkey | balloon | ...

例えば。再配置後

. . . . . column D | column E | column F | column G | ...  
row 1  
row 2  
row 3  balloon | car |  monkey | zebra | ...
4

1 に答える 1

1

ソートアルゴリズムが必要で、それを(行ではなく)列に適用します

これは簡単で汚いものです(わかりました、それは超高速のソーターではなく、私の記憶からではありませんが...):

Sub HorSort(SortRange As Range, SortRow As Long)
Dim Idx As Long, Jdx As Long, Kdx As Long, Tmp As Variant

    For Idx = 1 To (SortRange.Columns.Count - 1)
        For Jdx = 1 To (SortRange.Columns.Count - 1)

        ' compare values in row to be sorted
            If SortRange(SortRow, Jdx) > SortRange(SortRow, Jdx + 1) Then

            ' swap all cells in column with the one to the right
                For Kdx = 1 To SortRange.Rows.Count
                    Tmp = SortRange(Kdx, Jdx)
                    SortRange(Kdx, Jdx) = SortRange(Kdx, Jdx + 1)
                    SortRange(Kdx, Jdx + 1) = Tmp
                Next Kdx
            End If
        Next Jdx
    Next Idx
End Sub

Sub Test()
    HorSort Selection, 1
End Sub

A1に以下のデータを入力

5 2 4 1 3
A D B E C
1 2 3 4 5

A1..E3を選択し、それぞれを実行します。

HorSort Selection, 1
HorSort Selection, 2
HorSort Selection, 3

からSub Test()。もちろん、5 列に限定されません。

于 2013-07-19T07:56:43.880 に答える