试图自动化从“D:D”到“ZZ:ZZ”的一列分类过程

总之,我有大约五百左右的列,所有这些按字母顺序sorting(与标题)。 虽然这可能有一个更简单的解决scheme,包括突出显示整个数据集,并进行一些自定义的sorting….我刺探了为它写一个脚本。 我到目前为止是:

Sub ColumnSort() Dim Rng As Range Dim i As Long Dim aCell As Range i = 0 Set Rng = Range("D:D") While i <= 5000 Rng.Offset(0, i).Sort Order1:=xlAscending, Header:=xlYes i = i + 1 End Wend End Sub 

你可能会看到我的推理,但行Rng.Offset(0, i).Sort Order1:xlAscending, Header: =xlYes给我一个错误。 这是用于这个特定问题的正确语法吗? 有一个更好的方法吗?

谢谢,

下面是一个如何分列1-500列的例子:

  Dim col As Integer Dim r As Range Dim ws As Worksheet Set ws = ActiveSheet For col = 1 To 500 Set r = Cells(1, col).EntireColumn With ws .Sort.SortFields.Clear .Sort.SortFields.Add Key:=r, _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ws.Sort .SetRange r .Apply End With End With Next col 

还有很多其他设置可以应用,具体取决于您的数据以及您想要处理的内容(即数据是否包含标题)。

我永远不会记得他们 – 我通常会从这里做的是logging一个macros,我想要的设置,然后手动剥离出来,并将其添加到上面的代码。

例如,如果您想按降序sorting,则必须将Order:=xlDescending添加到内部的With子句中。