【发布时间】:2017-07-29 01:02:41
【问题描述】:
我正在尝试按 A2-A30000 范围内的 A 列排序,并且我想在 A 列第 1 行上进行下拉,但它既没有排序也没有启用 A 列第 1 行的下拉菜单。即使没有 VBA,当我只需选择 A1 并按过滤器,它就会自动将下拉列表放在 A2 上。发生的另一个问题是它仅对 A 列进行排序,但只是将 A 列移动,而将其他列单独留下,从而使整个工作表出错。
ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Add Key:=Range("A2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A2:A30000")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
知道可能出了什么问题吗?
【问题讨论】:
-
您需要选择工作表中的所有列以对它们进行过滤和排序
-
对于排序,您需要将
SetRange设置为整个表格的范围。对于过滤器,我建议您查看Worksheets.AutoFilter方法。