gpt4 book ai didi

vba - 范围VBA上的自定义排序

转载 作者:行者123 更新时间:2023-12-04 13:08:50 25 4
gpt4 key购买 nike

我希望在某些标准排序的最后对选定范围进行自定义排序。所以首先我们对范围“C”进行排序,然后是“R”,然后是“G”,最后我希望按状态排序——这是自定义排序部分。但这是非常错误的。我知道我需要一个 List 数组,但我不确定如何处理这个......请帮忙!

      Dim keyRange(1 To 5) As String
keyRange(1) = "L-2sd"
keyRange(2) = "L-1sd"
keyRange(3) = "P"
keyRange(4) = "U+1sd"
keyRange(5) = "U+2sd"


Application.AddCustomList ListArray:=keyRange
sortNum = Application.CustomListCount

'Dim sortNum As Long
ThisWorkbook.Sheets("Order").Activate
ThisWorkbook.Sheets("Order").Range("A1:" & Letter & 10000).Select
Selection.Sort key1:=Range("C"), Order1:=xlAscending,key2:=Range("R"), order2:=xlAscending, key3:=Range("G"), order3:=xlAscending,

key4:=Range("status"), Order1:=xlAscending, OrderCustom:=Application.CustomListCount + 1

最佳答案

您可以对 VBA 中的许多列进行排序,超过 3 列,但您必须使用不同的方法:

With ThisWorkbook.Worksheets("Order")
.Sort.SortFields.Clear
.Sort.SetRange .Range("A1:" & Letter & 10000)
.Sort.SortFields.Add .Columns("C")
.Sort.SortFields.Add .Columns("R")
.Sort.SortFields.Add .Range("status").EntireColumn
' You can add many more fields... for sorting
.Sort.Apply
End With

编辑

要使用自定义顺序对字段进行排序,您需要自定义顺序是逗号分隔的字符串:
Dim custom As String: custom = "L-2sd, L-1sd, P, U+1sd, U+2sd"
...
.Sort.SortFields.Add Key:=Range("D2:D10000"),..., CustomOrder:=custom

关于vba - 范围VBA上的自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41303940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com