zoukankan      html  css  js  c++  java
  • VBA 排序之sort

    在日常VBA中,自带的sort函数可以定义三个排序字段(key值)

     举例代码如下:

    Sub test()
    With Worksheets("SUMMARY OF DEPOT INVENTORY").Range("c10:o245")
    .Sort key2:=Worksheets("SUMMARY OF DEPOT INVENTORY").Range("d10"), _
          key3:=Worksheets("SUMMARY OF DEPOT INVENTORY").Range("e10"), _
          key1:=Worksheets("SUMMARY OF DEPOT INVENTORY").Range("k10"), _
          order1:=xlAscending, _
          order2:=xlAscending, _
          order3:=xlAscending, _
          Header:=xlYes
    End With
    End Sub
    

      但是遇到要多条件排序的话,排序字段超出3个就比较麻烦了,需要多次排序,

      不过sort函数换一种写法,用里面自定义排序,可以添加多个排序的字段

    Sub test3()
        With ActiveWorkbook.Worksheets("SUMMARY OF DEPOT INVENTORY")
        .Sort.SortFields.Clear '清空自定义排序的规则
        '增加4个key值
        .Sort.SortFields.Add Key:=.Range("K10"), SortOn:=xlSortOnValues, Order:=xlAscending
        .Sort.SortFields.Add Key:=.Range("d10"), SortOn:=xlSortOnValues, Order:=xlAscending
        .Sort.SortFields.Add Key:=.Range("e10"), SortOn:=xlSortOnValues, Order:=xlAscending
        .Sort.SortFields.Add Key:=.Range("n10"), SortOn:=xlSortOnValues, Order:=xlAscending
        '设置表格排序内容的范围
        .Sort.SetRange Range("a10:n245")
        '表头是否包含
        .Sort.Header = xlYes
        '执行
        .Sort.Apply
        End With
    End Sub
    

     

    知乎找来的一张关于每个方法对应的内容

  • 相关阅读:
    高程第五章(引用类型)
    第四章(变量、作用域、内存问题)
    label语句和break continue的使用(高程第三章)
    高级程序设计第三章
    max取得数组的最大值
    使用bind()扩充作用域
    函数
    数据类型、字符编码、文件处理
    Python入门
    8.8每日作业系列之循环模块运用
  • 原文地址:https://www.cnblogs.com/Young-shi/p/12845994.html
Copyright © 2011-2022 走看看