vba - 如何从最新到最旧对列进行排序?

标签 vba excel sorting

我有以下 VBA 代码:

Sub sort()
    Range("M2:M").Sort _
    Key1:=Range("M2"), Order1:=xlAscending
End Sub

但是,它不起作用。我如何解决它?

最佳答案

它不起作用,因为您使用的是 列上的语法; 想要指定最后一行。排序还希望主键成为“M2:M”和 lr 范围中的第一个单元格。告诉它 M2,相对于 Range("M2:M"& lr) 实际上是引用 Y3。您应该知道您是否使用标题;我假设任何标题标签都在 M1 中,因此对于 Range("M2:M"& lr),您使用 Header:=xlNo。

Sub msort()
    dim lr as long
    lr = cells(rows.count, "M").end(xlup).row
    with Range("M2:M" & lr)
        .Sort Key1:=.cells(1), Order1:=xldescending, _
              Orientation:=xlTopToBottom, Header:=xlNo
    end with
End Sub

您还应该避免使用保留字作为子过程和变量的名称。养成提供父工作表引用的习惯。

顺便说一句,从最新到最旧排序的日期是 xldescending 顺序,而不是 xlascending。

关于vba - 如何从最新到最旧对列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49585386/

相关文章:

arrays - 使用数组将文本从一个工作表传递到另一个工作表

vba - inputBox Excel VBA 整数问题

vba - 如何检测单元格格式的变化?

Excel宏将数据从一个工作表复制并粘贴到另一个工作表

python - 根据列表中的元素对列表作为值的字典进行排序

excel - 根据页码从word文档中提取一系列表格

c# - 将 Excel 颜色 BGR 转换为 RGB

vba - 使用Excel VBA使用循环将图片插入Word

php - 如何在mysql中选择从最后一行到第一行

python - 在 python 中按产品对元组数组进行排序