Excel中的排序宏

Excel中的排序宏,excel,vba,Excel,Vba,我试图使用此代码在excel中对电子表格进行排序,但我不确定如何在.SetRange属性中放置预定义的范围。我希望使用上面设置的rng1Row变量。任何帮助都将不胜感激 N = Cells(Rows.Count, "A").End(xlUp).Row Set rng1 = wb1.Sheets("SourceData").Cells.Range("A2:A" & N) Set rng1Row = rng1.EntireRow wb1.Worksheets("SourceData").S

我试图使用此代码在excel中对电子表格进行排序,但我不确定如何在.SetRange属性中放置预定义的范围。我希望使用上面设置的rng1Row变量。任何帮助都将不胜感激

N = Cells(Rows.Count, "A").End(xlUp).Row
Set rng1 = wb1.Sheets("SourceData").Cells.Range("A2:A" & N)
Set rng1Row = rng1.EntireRow

wb1.Worksheets("SourceData").Sort.SortFields.Clear
wb1.Worksheets("SourceData").Sort.SortFields.Add Key:=wb1.Sheets("SourceData").Cells.Range("A2:A" & N), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
With wb1.Worksheets("SourceData").Sort
    .SetRange
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
:expression.SetRangeRng

SetRange Rangerng1Row假设rng1Row是一个范围

但是,让我们看看代码的第一部分-

N = Cells(Rows.Count, "A").End(xlUp).Row
Set rng1 = wb1.Sheets("SourceData").Cells.Range("A2:A" & N)
Set rng1Row = rng1.EntireRow

您正在尝试获取列的行。rng1Row=范围A:A.EntireRow。这不是对该物业的有效使用。

您的目标是什么?您只是想对A列进行排序吗?