我正在尝试按两个级别对 vba 中的表(在较大宏的中间)进行排序。我尝试按照我想要的方式记录宏,但范围是特定于该系列数据的。范围的结尾可以改变,所以我在代码中添加了一个计数器,基本上告诉我范围的结束位置
下面是我的代码的简化版本(我将计数器设置为 200 以简化事情,但这会在我的代码中改变)
我想要的是按 C 列然后按 A 列对范围(“A1、“AB”和 counterT)进行排序,所以如果有更简单的方法(我假设有)可以忽略我的代码。
我暂停了我的代码(正如您将在下面注意到的那样)以突出显示真正给我带来麻烦的部分。但是,我不完全确定我是否修复了代码仍然可以工作的那部分,所以这可能只是一个当前问题,而不是整个问题。感谢您的任何帮助!
Sub Sort
Dim counterT As Long
counterT = 200
Dim rDataToSort As Range, rSortData As Range
Set rSortData = Range("C4", C" & CounterT)
Set rDataToSort = Range("A4", AB" & CounterT)
我在这里暂停代码,因为我不知道如何在此处添加第二级(A 列)
With ActiveWorkbook.Worksheets("Output").Sort
.SortFields.Clear
.SortFields.Add Key:=rSortData, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange rDataToSort
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With