excel vba 排序错误1004
excel vba sort error 1004
我正在使用此代码进行排序(已检查 Excel 2010/2013):
Worksheets("Tabelle4(1)").Activate
ActiveSheet.Sort.SortFields.Add Key:=Range( _
"W2:W51"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
我用不同的值循环 sheet 70 次,然后将它们排序并导出为 pdf。
一切正常,但大约 30 次后我收到错误 1004。
如果我在这一点 30 再次开始循环,它就可以正常工作。
问题似乎与价值观无关。
excel 里面有缓冲区吗?
您确实应该不时清除您的排序字段,因为它们只会累积起来,您将很难确定它们的优先级。
并且不要使用 Activate
,也不使用 Select
,后者更糟,所以只需将 Sheets().Activate
和 ActiveSheet.Sort
组合到 Sheets().Sort
,你的代码会更有效率。
这应该对你有帮助:
With Worksheets("Tabelle4(1)")
.Sort.SortFields.Add _
Key:=Range("W2:W51"), _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal
.Sort.Orientation = xlTopToBottom
.Sort.Apply
'here is your export
.Sort.SortFields.Clear
End With
Set ws = Worksheets("Sheet1")
Set rng = ws.Range(Cells(startRow, 1), Cells(endRow, 3))
'startRow=2, endRow=18
'Sort Table Date Decending Order
ws.Sort.SortFields.Clear
With ws
.Sort.SortFields.Add Key:=rng, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With
'这有效,但不会对数据进行降序排序。
我正在使用此代码进行排序(已检查 Excel 2010/2013):
Worksheets("Tabelle4(1)").Activate
ActiveSheet.Sort.SortFields.Add Key:=Range( _
"W2:W51"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
我用不同的值循环 sheet 70 次,然后将它们排序并导出为 pdf。 一切正常,但大约 30 次后我收到错误 1004。 如果我在这一点 30 再次开始循环,它就可以正常工作。 问题似乎与价值观无关。 excel 里面有缓冲区吗?
您确实应该不时清除您的排序字段,因为它们只会累积起来,您将很难确定它们的优先级。
并且不要使用 Activate
,也不使用 Select
,后者更糟,所以只需将 Sheets().Activate
和 ActiveSheet.Sort
组合到 Sheets().Sort
,你的代码会更有效率。
这应该对你有帮助:
With Worksheets("Tabelle4(1)")
.Sort.SortFields.Add _
Key:=Range("W2:W51"), _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal
.Sort.Orientation = xlTopToBottom
.Sort.Apply
'here is your export
.Sort.SortFields.Clear
End With
Set ws = Worksheets("Sheet1")
Set rng = ws.Range(Cells(startRow, 1), Cells(endRow, 3))
'startRow=2, endRow=18
'Sort Table Date Decending Order
ws.Sort.SortFields.Clear
With ws
.Sort.SortFields.Add Key:=rng, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With
'这有效,但不会对数据进行降序排序。