你能帮助我理解这个信息:
首先,似乎添加了排序规则
MainSheet.Sort.SortFields.Clear
For lI = 1 To vSortKeys(0, 1)
MainSheet.Sort.SortFields.Add Key:=Range(vSortKeys(lI, 1) & 2),
SortOn:=xlSortOnValues, Order:=vSortKeys(lI, 2), DataOption:=xlSortNormal
Next
然后,我了解以下代码实际上正在运行排序
With MainSheet.Sort
.SetRange Range("A" & lFrom & ":" & GEN_REV_END & lTo)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
这种解释是否正确 - 首先需要添加排序规则,然后将其应用于第二部分?
然后,我们为什么要在第二部分中定义一个排序范围,在
中With MainSheet.Sort
.SetRange Range("A" & lFrom & ":" & GEN_REV_END & lTo)
End With
我们排序Key:=Range(vSortKeys(lI, 1) & 2)
的规则是否已经存在?有效运行哪种细胞范围?
答案 0 :(得分:6)
排序正在应用于Sort.SetRange
中指定的范围。 Key
中的Sort.SortFields.Add
参数允许您指定将确定评分顺序的字段。每个字段可以只是具有列标题的单元格。您可以为多个排序级别添加多个键。
举个例子,如果您在单元格A1:C10
中有数据并且想要以升序方式对其进行排序,请将列A
中的信息作为排序键,您可以执行此操作将列A
中的数据设置为键:
MainSheet.Sort.SortFields.Add Key:=Range("A1") '("A1:A10") will also work
然后您可以指定将根据该键排序的范围,如下所示:
MainSheet.Sort.SetRange Range("A1:C10")