Excel 尝试对三个不同值上的数据进行排序时出现运行时错误1004

Excel 尝试对三个不同值上的数据进行排序时出现运行时错误1004,excel,runtime-error,excel-2010,vba,Excel,Runtime Error,Excel 2010,Vba,我已经阅读了至少十五篇关于这方面的不同文章,并尝试了许多不同的可能解决方案。我正在尝试使用下面的VBA代码按三个不同级别对大小可变的工作表进行排序 当我单步执行代码时,在排序的.apply参数处得到一个错误1004 运行时错误“1004”: 排序引用不是vald。确保它在您需要的数据范围内 如果要排序,则第一个排序依据框不相同或不为空。 有人能提出这个问题的原因或解决方案吗 Sub Subbing() Dim LastCell as String Range("A2").End(xlDown

我已经阅读了至少十五篇关于这方面的不同文章,并尝试了许多不同的可能解决方案。我正在尝试使用下面的VBA代码按三个不同级别对大小可变的工作表进行排序

当我单步执行代码时,在排序的.apply参数处得到一个错误1004

运行时错误“1004”:

排序引用不是vald。确保它在您需要的数据范围内 如果要排序,则第一个排序依据框不相同或不为空。

有人能提出这个问题的原因或解决方案吗

Sub Subbing()

Dim LastCell as String

Range("A2").End(xlDown).Select

LastCell = Selection.Offset(0, 13).Address
Worksheets("Sheet1").Activate

With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SortFields.Clear
        .SetRange Range("A2", LastCell)
        .SortFields.Add Key:=ActiveWorkbook.Worksheets("Sheet1").Range("R2"), _ SortOn:=xlSortOnValues, Order:=xlAscending
        .SortFields.Add Key:=ActiveWorkbook.Worksheets("Sheet1").Range("S2"), _ SortOn:=xlSortOnValues, Order:=xlAscending
        .SortFields.Add Key:=ActiveWorkbook.Worksheets("Sheet1").Range("D2"), _ SortOn:=xlSortOnValues, Order:=xlAscending
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply

End With
End Sub
我期待你的答复。我知道这是一个常见的问题,但我尝试了所有被广泛建议的解决我的问题的方法,但都没有用

问候


皮特

在我看来,你选择了A:N进行排序,但正在按R、S和D的值进行排序。通过分步模式运行,并在LastCell上放置一个手表-如果我是对的,那还不足以让你真正排序你想要的东西。

。。。您的条件范围超出了排序区域-您不能这样做

我的意思是,您的排序范围将在A列和N列之间(A后13列),但您的标准在R&S列中

如果你扩大你的分类范围,所有的都可以


希望这能解决所有问题。

尝试录制宏,并将生成的代码与您的代码进行比较。我的代码最初是录制的宏,并根据我在各种论坛上读到的有关如何解决此问题的内容进行了编辑。不过,感谢您的建议:)谢谢乔,我是一个傻瓜,我知道这是真的。当我第一次创建代码时,要排序的数据包含更多的列。很明显,在我删除了不相关的信息后,我忘记了调整排序键,应该是M列而不是N列。现在可以了。谢谢你的评论John,你说得对。乔只是比你抢先一步。没问题,这就是它应该的方式-很高兴你让它工作了!!