Excel SortFields添加然后sorting
你能帮我理解这个问题吗?
首先,似乎添加了sorting规则
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
然后,我明白下面的代码是有效地运行sorting
With MainSheet.Sort .SetRange Range("A" & lFrom & ":" & GEN_REV_END & lTo) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
这个解释是否正确 – 需要先添加一个sorting规则,然后将其与第二部分一起使用?
那么,为什么我们要在第二部分定义一个范围,
With MainSheet.Sort .SetRange Range("A" & lFrom & ":" & GEN_REV_END & lTo) End With
是不是已经在规则中,我们sorting为Key:=Range(vSortKeys(lI, 1) & 2)
? 有效运行哪种单元格?
正在将sorting应用于Sort.SetRange
指定的范围。 Sort.SortFields.Add
的Key
参数允许您指定将确定存储顺序的字段。 每个字段可以只是具有列标题的单元格。 您可以为多个sorting级别添加多个键。
举个例子,如果在单元格A1:C10
有数据,并且想要按升序对数据进行sorting,将A
列中A
信息作为sorting的关键字,则可以这样做,将A
列中A
数据设置为关键字:
MainSheet.Sort.SortFields.Add Key:=Range("A1") '("A1:A10") will also work
然后,您可以指定将基于该键sorting的范围如下:
MainSheet.Sort.SetRange Range("A1:C10")