我想编写一个代码来对Excel工作表中的数据进行排序,该工作表有14列,而我考虑将每一列作为键。请在下面找到代码。
当我尝试运行上述VBA代码时,出现错误消息
“找不到命名参数”编译错误。
Range("O2", Range("O2").End(xlDown).End(xlToRight))
.Sort Key1:=Range("O2"), Order1:=xlAscending, Key2:=Range("P2"), Order2:=xlAscending, Key3:=Range("Q2"), Order3:=xlAscending,
Key4:=Range("R2"), Order4:=xlAscending, Key5:=Range("S2"), Order5:=xlAscending, Key6:=Range("T2"), Order6:=xlAscending,
Key7:=Range("U2"), Order7:=xlAscending, Key8:=Range("V2"), Order8:=xlAscending, Key9:=Range("W2"), Order9:=xlAscending,
Key10:=Range("X2"), Order10:=xlAscending, Key11:=Range("Y2"), Order11:=xlAscending, Key12:=Range("Z2"), Order12:=xlAscending,
Key13:=Range("AA2"), Order13:=xlAscending, Key14:=Range("AB2"), Order14:=xlAscending, Header:=xlNo
实际上,它应该将每一列都作为键对数据进行排序,但是我收到了“找不到命名参数”的编译错误。
答案 0 :(得分:2)
根据Range.Sort method的文档,仅存在3个unique opners = DISTINCTCOUNT( 'dw useraction_fact'[user_id])
,Key
和Order
参数,而不是14。
DataOption
您需要将其更改为使用.Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)
.SortFields