按Z-A排序,使用为lastrow定义的变量名称

时间:2014-09-12 10:38:30

标签: vba sorting excel-vba excel-formula formula

我找到了下面的代码(使用记录宏),但我希望将行1208设置为最后一个活动行。正在我使用列K排序列,其值为行号(下面的代码行):

ActiveSheet.Range("K1:K" & last).Formula = "=row()"

我想在下面的sortby()代码中使用此K范围。我可以使用名为" last"的变量来完成此操作。或者我必须使用"找到lastrow"码?

函数sortby()

Columns("A:D").Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("K1:K1208"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("A1:K1208")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Function

1 个答案:

答案 0 :(得分:0)

我通常使用此行来查找最后一个活动行:

LastRow = Sheets(ShtName).UsedRange.Rows.Count

假设您的标题位于第1行,您也不必具体指定行。您可以使用以下代码:

Set ws = Worksheets("Sheet1")

ws.Columns("A:K").Sort Key1:=ws.Range("K2"), Order1:=xlDescending, Header:= _
    xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:= _
    xlSortNormal, DataOption2:=xlSortNormal