我知道这个主题有几个主题,但没有一个答案帮助解决了这个错误。
我正在尝试使用三个键对表进行排序,但收到错误,“运行时错误'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崩溃了,并没有恢复我所做的更改,我无法弄清楚为什么我今天无法让它工作。
答案 0 :(得分:2)
你很可能没有" 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
答案 1 :(得分:1)
如果有可能在将来再次更改列数,您可以执行类似的操作。
With shtData
Range(Range("A2"), Cells(Range("A8000").End(xlUp).Row, Range("ZZ2").End(xlLeft).Column)
这样它会自动调整排序区域的大小,无论您使用的列数是多少,还是行。