VBA嵌套循环崩溃

我在VBA中有这个函数,除了当它到达For循环时它崩溃,我必须closuresExcel和一切,不知道如何解决它。

 Private Sub checkDuplicates(x As Worksheet) Dim n As Integer, i As Long, j As Long Sort x addheader x, "checkDup." n = searchHeader(x, "checkDup.") x.Columns(n) = 1 For i = 50 To 3 Step -1 For j = 1 To 5 If Not x.Cells(i, j) = x.Cells(i - 1, j).Value Then x.Cells(i, n) = 0 Exit For End If Next j Next i End Sub 

根据这里的评论 – 对话, 你的代码不会“崩溃”

它的工作非常困难,并且在严格的循环中访问单元格值,这是VBA代码可以做的最慢的事情,而且您正在为大量的单元格执行操作。

等一下 Excel“没有响应”,因为它忙于运行你的循环,并跟上所有的更新。

以下是可能帮助它更快完成的事情:

 Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.EnableEvents = False ' your code here Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Application.EnableEvents = True 

如果不能在更合理的时间内完成,那么你需要考虑一个基于数组的方法,在那里你将有趣的范围转储到内存数组中,对数组进行操作,修改数组值,然后将数组转储到工作表中一次写入