【发布时间】:2019-11-08 11:31:23
【问题描述】:
场景:我有一张工作表,正在尝试对其中的一部分进行排序。在工作表内,我有一个下拉列表,允许我选择值(aaa、bbb、ccc)。这些值中的每一个都表示列,在选择时,代码应按该列对该范围进行排序。
问题:该过程适用于下拉列表中的一个值,但不适用于其他值(它运行,但没有任何反应)。
代码:
Sub ratecolumnssort()
Dim LastRow As Integer
Dim sortColumn As String, sortAgent As String
shtMonitoring.Activate
LastRow = shtMonitoring.Cells(shtMonitoring.rows.count, "B").End(xlUp).row
sortAgent = shtMonitoring.Cells(8, 9) ' this is where the dropdown with values aaa, bbb and ccc is
If sortAgent = "aaa" Then
sortColumn = "F"
ElseIf sortAgent = "bbb" Then
sortColumn = "H"
ElseIf sortAgent = "ccc" Then
sortColumn = "J"
End If
With ActiveSheet.sort
.SortFields.Add key:=Range(sortColumn & "11"), Order:=xlAscending
.SetRange Range("B11", "N" & LastRow )
.Header = xlYes
.Apply
End With
End Sub
问题:我在这里做错了什么?
【问题讨论】:
-
未测试,但我认为每次排序都需要事先清除。在每次排序之前尝试一下 lke
ActiveSheet..AutoFilter.Sort.SortFields.Clear?