无法知道为什么"Run Time Error 1004"数据排序



我正在将AT列中的数据排序为AX,并为此编写以下代码。但仍停留在"底线";。应用";。我不明白我犯了什么错误?请提出解决方案。

Sub Yearly2_5DataArrangeOldestToNewest()
Dim shDayData As Worksheet
Set shDayData = ThisWorkbook.Worksheets("DayData")
shDayData.Range("AT:AX").Select
shDayData.Sort.SortFields.Clear
shDayData.Sort.SortFields.Add Key:=Range("AT2:AX3610"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With shDayData.Sort
.SetRange Range("AT1:AX3610")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply 'HERE IS PROBLEM
End With
shDayData.Range("AT:AX").Select
Selection.NumberFormat = "[$-14009]dd/mm/yy;@"
shDayData.Range("AX2").Select
End Sub

只是为了扩展Rory和pᴇʜ的评论,你需要小心如何定义排序范围和关键字范围,如果你想对所有五列进行排序,你需要将每列定义为一个单独的关键字。

Sub Yearly2_5DataArrangeOldestToNewest()

Dim dataRange As Range
Dim keyRange(1 to 5) As Range

With ThisWorkbook.Worksheets("DayData")

Set dataRange = .Range("AT2:AX360")
Set keyRange(1) = .Range("AT3:AT360")
Set keyRange(2) = .Range("AU3:AU360")
Set keyRange(3) = .Range("AV3:AV360")
Set keyRange(4) = .Range("AW3:AW360")
Set keyRange(5) = .Range("AX3:AX360")

With .Sort

With .SortFields
.Clear
.Add2 Key:=keyRange(1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Add2 Key:=keyRange(2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Add2 Key:=keyRange(3), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Add2 Key:=keyRange(4), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Add2 Key:=keyRange(5), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With '.SortFields

.SetRange dataRange
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply

End With '.Sort

End With 'ThisWorkbook.Worksheets("DayData")
End Sub

相关内容

最新更新