0

選択範囲内の各行を並べ替えようとしています。例:

並べ替える前:

8 3 17
2 9 4
5 3 8

ソート後:

3 8 17
2 4 9
3 5 8

私はこのコードを書きましたが、機能しません:

Public Sub SortByString()
Dim row As Range
For Each row In Selection.Rows
    row.Sort Key1:=row, Order1:=xlAscending, Orientation:=xlSortColumns
Next row
End Sub

私はVBAの初心者です。私が間違っているよりも?助けてください。

4

1 に答える 1

5

問題はOrientationパラメータにあります。xlSortRowsまたはxlLeftToRightのいずれかである必要があります。

row.Sort Key1:=row, Order1:=xlAscending, Orientation:=xlSortRows

また

row.Sort Key1:=row, Order1:=xlAscending, Orientation:=xlLeftToRight

実際に行をソートしているので、最初のものは理にかなっています。2つ目は、マクロレコーダーで得られるものです。

于 2013-03-02T15:17:47.777 に答える