我有一个电子表格,可以从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