在Excel 2010上寻找更好的定义范围?

寻求帮助,使我的macros观范围更加友好。 Excel是2010版本。

ActiveWorkbook.Worksheets("AddressList").Sort.SortFields.Clear ActiveWorkbook.Worksheets("AddressList").Sort.SortFields.Add Key:=Range( _ "G2:G1374"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers With ActiveWorkbook.Worksheets("AddressList").Sort .SetRange Range("A1:J1374") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 

问题:如何从预定义的范围(G2:G1374和A1:J1374)更改为基于列和使用单元格的内容?

有更好的方法来编写Range.Sort方法 。 使用Range.CurrentRegion属性是引用从A1辐射出来的数据块的理想select。

 with worksheets("AddressList") with .cells(1, 1).currentregion .Cells.Sort Key1:=.Columns(7), Order1:=xlAscending, _ Orientation:=xlTopToBottom, Header:=xlYes end with end with 

你可以使用这样的东西

 Dim mySheet as worksheet Set mySheet = Sheets("somePrettySheetName") with mySheet .range(.cells(row,column),.cells(row,Column)).someStuffToDo end with 

如果不使用wana,你需要指定所有的时间,例如

 mySheet.range(mySheet.cells(row,column),mySheet.cells(row,column)) 

备注:行列可以是数字,字母等