我知道这个主题有几个主题,但没有一个答案有助于解决这个错误。
我正在尝试使用三个键对表进行排序,但收到错误“运行时错误'1004':Range 类的排序方法失败”
我尝试将“Range(“L2”)”更改为“.Range(“L2”)”并收到错误,“编译错误:无效或不合格的引用”
我尝试指定实际范围而不是使用列,我删除了最后两个键并只尝试了第一个键,但仍然收到运行时错误。
shtData.Activate
shtData.Range(Range("A2"), Range("Z8000").End(xlUp)).Sort _
Key1:=Range("L2"), Order1:=xlAscending, _
Key2:=Range("M2"), Order2:=xlAscending, _
Key3:=Range("B2"), Order3:=xlAscending, _
Header:=xlYes
如果您有任何建议,我将不胜感激。我昨天有这个工作,我的 excel 崩溃了,没有恢复我所做的更改,我不知道为什么我今天不能让它工作。
最佳答案
您很可能在“Z”列中没有数据
如果数据行范围可以按“A”列而不是空单元格安全地调整大小,则如下所示
Option Explicit
Sub main()
Dim shtData As Worksheet
Set shtData = Worksheets("Data") '<--| some setting of 'shtData'
With shtData
.Range("Z2", .Cells(.Rows.Count, "A").End(xlUp)).Sort _
Key1:=.Range("L2"), Order1:=xlAscending, _
Key2:=.Range("M2"), Order2:=xlAscending, _
Key3:=.Range("B2"), Order3:=xlAscending, _
Header:=xlYes
End With
End Sub
关于Range类的VBA排序方法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40917356/