[英]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
我遍历具有不同值的工作表70次,然后将其排序并导出为pdf。 一切正常,但大约30次后出现错误1004。如果我再次在30点开始循环,则工作正常。 问题似乎与值无关。 excel内部是否有缓冲区,我必须不时清除该缓冲区?
实际上,您应该不时清除“排序”字段,因为它们只是累积而已,您很难对它们进行优先排序。
而且,只需不使用Activate
,也不要使用Select
更糟糕的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
'这有效,但不对降序的数据进行排序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.