我有以下VBA代码:
Sub sort()
Range("M2:M").Sort _
Key1:=Range("M2"), Order1:=xlAscending
End Sub
但是,它不起作用。我该如何解决?
答案 0 :(得分:2)
它无效,因为您在列上使用google-sheets语法; excel想要指定最后一行。 Sort还希望主键是“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。