我有一個電子表格,可以從3種不同類型的文件中導入一堆數據。它將其格式化爲使所有三個輸出都相同,在一種情況下,需要根據該行的單元格中的內容刪除行。問題是,這需要花費大約1.5到2分鐘的時間,而其他文件的格式化所花費的時間(沒有刪除梯級的時間)需要花費幾秒鐘。工作表開始大約4000行,並刪除其中約1600。我目前的做法工作正常,一切正常,但有沒有辦法做到這一點會跑得更快?需要關於如何加快這一位代碼的建議
rw = 1
Lastrow = 2600
NewRow = 0
NxtChk2:
If (Worksheets("ARCSRT.CND").Cells(rw, "c") >= "0") And (Worksheets("ARCSRT.CND").Cells(rw, "d") = "") Then
Worksheets("ARCSRT.CND").Rows(rw).EntireRow.Delete
rw = rw - 1
End If
If (Worksheets("ARCSRT.CND").Cells(rw, "b") = "0.0") And (Worksheets("ARCSRT.CND").Cells(rw, "c") = "") Then
Worksheets("ARCSRT.CND").Rows(rw).EntireRow.Delete
rw = rw - 1
End If
If rw = Lastrow Then GoTo LATER
rw = rw + 1
GoTo NxtChk2
首先,關閉screenupdating,將計算設置爲手動,並禁用事件。如果這樣做不夠快,可以嘗試使用數組和集合來完成VBA中的所有工作,以避免多次讀取/寫入工作表。請參閱Chip Pearson的網站,瞭解如何在單個步驟中將數組讀取和寫入一個範圍。 – 2014-12-04 13:24:29
一切已經關閉,這就是爲什麼其他兩種文件類型運行得足夠快。我沒有嘗試過陣列,並會檢查出芯片網站。謝謝。 – oshoguno 2014-12-04 14:00:15
David,我看不出你的鏈接或下面的答案與我的問題有什麼關係。我正在問如何加快在Excel中刪除橫檔,而不是在Word中替換單詞。我不知道你們兩個在說什麼,除非我有什麼遺漏。 – oshoguno 2014-12-04 18:21:42