我想订购一个每次运行宏时位于不同位置的列。以下是我目前完成操作的代码:
Range(ActiveCell, ActiveCell.Offset(1000, 1)).Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range(ActiveCell), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range(ActiveCell, ActiveCell(1000, 1))
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
抵消1000的原因是我不知道列中会有多少条目,但我知道它将小于1000 ...偏差为1它可以对数值进行排序(这是在那1列偏移量)和他们的公司名称标识符,在另一列。不确定如何修复代码,但在调试中,我在尝试运行后特意得到错误:
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range(ActiveCell), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
有什么想法吗?
答案 0 :(得分:3)
map
不起作用,因为Range(ActiveCell)
本身就是一个范围。因此,只需使用ActiveCell
代替ActiveCell
。更好的是,避免凯尔建议的Range(ActiveCell)
和Active...