2014-09-30 107 views
0

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

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 
+0

不会'.SetRange rng1Row'工作吗? – 2014-09-30 15:18:31

+0

不,它不排序。但它也不会抛出任何错误。 – user4095610 2014-09-30 15:20:56

+0

step-through代码 – 2014-09-30 15:25:59

回答

0

通过使用.SetRange rng1Row您只排序1行。

更改为:

.SetRange wb1.Sheets("Source Data").Range("A2").CurrentRegion 

或类似的选择值的整个表。