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

第一个是有道理的,因为您实际上是在对行进行排序。第二个是我用宏记录器得到的。

于 2013-03-02T15:17:47.777 回答