【问题标题】:Sorting lists with keys vba使用键 vba 对列表进行排序
【发布时间】:2016-02-25 23:57:27
【问题描述】:

我正在编写一些东西来对 A2 和 F 中数据末尾之间的数据进行排序。排序将首先使用自定义数组顺序对 F 进行排序,然后在 F 顺序中按字母顺序对 A 进行排序。目前,我收到 Key1 的错误“预期语句结束”,但我不确定这是为什么。有什么我缺少能够使用排序键的吗?

Sub Sort_Data()

Dim lstrw As Integer


    lstrw = Range("A2").End(xlDown).Row

    With  Range("A2", Cells(lstrw, "F")).Sort Key1:=Range("F2"), CustomOrder1:="OFDB,CSTM,*FS", _
           key2:=Range("A2"), order2:=xlAscending, _
           Header:=xlNo
    End With

End Sub

【问题讨论】:

    标签: vba excel sorting


    【解决方案1】:

    .Sort 移到下一行:

    Option Explicit
    
    Sub Sort_Data()
        Dim lstrw As Integer
        lstrw = Range("A2").End(xlDown).Row
        With Range("A2", Cells(lstrw, "F"))
            .Sort Key1:=Range("F2"), CustomOrder1:="OFDB,CSTM,*FS", _
               key2:=Range("A2"), order2:=xlAscending, _
               Header:=xlNo
        End With
    End Sub
    

    【讨论】:

    • 现在它已移至“CustomOrder”未找到的命名参数?还有为什么 .sort 必须是下一行?
    • 这是Order1,而不是“CustomOrder1”。 MSDN Range.Sort
    • 更改顺序会产生错误“溢出”。我认为这是不匹配的范围,但我看不出那方面有什么问题?
    • 我建议在工作表上手动计算排序并记录宏。然后使用录制的宏中的信息正确设置您自己的 vba。如果需要,您甚至可以使用功能区控件定义自定义排序顺序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多