我最近将 excel 从 2010 升级到 2016(32 位(,突然之间,需要 5 秒才能完成的代码现在需要永远。即使是像下面的代码这样的简单复制操作也需要大约半分钟才能运行。
For i = 1 To 10
Worksheets("Sheet2").Range("A" & i).Copy Worksheets("Sheet2").Range("A" & i)
Next i
有没有办法解决这个问题?
编辑:下面是@Comintern请求的"真实"代码,大约有1000个副本,但需要永远运行:
For i = 3 To lRow1
Select Case Range(cType & i).Value
Case "Order"
ws1.Rows(i).Copy wsOrder.Rows(lRowOrder + 1)
lRowOrder = lRowOrder + 1
Case "UP"
ws1.Rows(i).Copy wsUP.Rows(lRowUP + 1)
lRowUP = lRowUP + 1
Case "Cancel"
ws1.Rows(i).Copy wsCancel.Rows(lRowCancel + 1)
lRowCancel = lRowCancel + 1
Case "Edit"
ws1.Rows(i).Copy wsEdit.Rows(lRowEdit + 1)
lRowEdit = lRowEdit + 1
Case ""
ws1.Rows(i).Copy wsOther.Rows(lRowOther + 1)
lRowOther = lRowOther + 1
End Select
Next
我最近遇到了类似的问题。 Excel 需要几分钟才能复制工作表的一部分,例如 12x500 个单元格的区域。 就我而言,事实证明,这些单元格已经拾取了一些不可见的图形,可能是来自网页上的原点。 因此,如果您在复制操作上遇到 excel 挂断,要检查的一件事是您的工作中是否存在图像对象。
这里有一个快速的过程来查找和删除它们: https://excel.tips.net/T003018_Deleting_All_Graphics.html