簡體   English   中英

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

我遍歷具有不同值的工作表70次,然后將其排序並導出為pdf。 一切正常,但大約30次后出現錯誤1004。如果我再次在30點開始循環,則工作正常。 問題似乎與值無關。 excel內部是否有緩沖區,我必須不時清除該緩沖區?

實際上,您應該不時清除“排序”字段,因為它們只是累積而已,您很難對它們進行優先排序。

而且,只需不使用Activate ,也不要使用Select更糟糕的Select ,因此將Sheets().ActivateActiveSheet.SortSheets().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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM