本帖最后由 香川群子 于 2013-7-10 14:13 编辑
按自定义序列排序即可:
- Sub test()
- arr = Array("北京", "成都", "广州", "上海", "武汉") '输入自定义序列
- ' (也可以直接从工作表区域中输入) 比如: arr = Range("A1:A20")
- Application.AddCustomList listArray:=arr '自定义序列库中加入该自定义序列
- n = Application.GetCustomListNum(arr) '获取该自定义序列的引用代号
-
- Range("A1").CurrentRegion.Sort [d2], 2, , , , , , 1 '先对数据1进行逆排序
- Range("A1").CurrentRegion.Sort [b2], 1, , , , , , 1, n + 1 '然后对城市按自定义序列进行排序
- Range("A1").CurrentRegion.Sort [a2], 1, , , , , , 1 '最后对类型进行排序
-
- 'Application.DeleteCustomList n '从自定义序列库中删除该自定义序列 (也可以保留不删)
-
- End Sub
复制代码 自定义序列汉字输入按国际双位码时这么用:
arr = Array(ChrW(21271) & ChrW(20140), ChrW(25104) & ChrW(37117), ChrW(24191) & ChrW(24030), ChrW(19978) & ChrW(28023), ChrW(27494) & ChrW(27721))
排序时直接这么用不可以,自定义序列只能对应第1个排序参数。如果不是第一个,就只能一个一个来。
Range("A1").CurrentRegion.Sort [a2], 1, [b2], , 1, [d2], 2, 1, n + 1 '排序
|