使用VBA排序给出错误的结果

时间:2017-01-18 07:01:00

标签: excel-vba sorting vba excel

我有这个代码来分类Excel表格

'for the ascending order
Range("A14:CB" & lastRow).Sort key1:=Range(Col & "14:" & Col & lastRow), Order1:=xlAscending, Header:=xlNo, key2:=Range("C14:C" & lastRow), Order2:=xlAscending, Header:=xlNo
'for the descending order
Range("A14:CB" & lastRow).Sort key1:=Range(Col & "14:" & Col & lastRow), Order1:=xlDescending, Header:=xlNo, key2:=Range("C14:C" & lastRow), Order2:=xlAscending, Header:=xlNo

这是我在Col=J

上进行升序排序时得到的结果

enter image description here

这是我在Col=J

进行降序排序时得到的结果

enter image description here

两者都显然是错误的。我在VBA代码中没有看到任何错误吗?

1 个答案:

答案 0 :(得分:1)

Excel的排序效果很好,例如选择一个范围并运行以下内容:

Option Explicit

Sub TestMe()

    Selection.Sort key1:=Selection, Order1:=xlDescending

End Sub

在您的代码中,您应该检查定义范围的变量。例如。 lastRowCol。在代码的顶部写下这样的东西:

debug.print lastRow
debug.print Col