寻求帮助,使我的宏更加环保。 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)更改为基于列和已使用单元格的内容?
答案 0 :(得分:1)
有更好的方法来编码Range.Sort method。使用Range.CurrentRegion property非常适合引用从A1辐射出来的数据块。
with worksheets("AddressList")
with .cells(1, 1).currentregion
.Cells.Sort Key1:=.Columns(7), Order1:=xlAscending, _
Orientation:=xlTopToBottom, Header:=xlYes
end with
end with
答案 1 :(得分:0)
你可以使用这样的东西
Dim mySheet as worksheet
Set mySheet = Sheets("somePrettySheetName")
with mySheet
.range(.cells(row,column),.cells(row,Column)).someStuffToDo
end with
如果不使用,你需要一直指定表格,例如。
mySheet.range(mySheet.cells(row,column),mySheet.cells(row,column))
备注:行和列可以是数字,字母等......