我最近将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
答案 0 :(得分:0)
我最近遇到了类似的问题。 Excel 需要几分钟来复制工作表的一部分,比如 12x500 单元格的区域。就我而言,结果证明细胞已经拾取了一些不可见的图形,可能来自它们在网页上的来源。因此,如果您在复制操作时遇到 excel 挂起,需要检查的一件事是您的工作中是否存在图像对象。
这里有一个快速的过程来查找和删除它们: https://excel.tips.net/T003018_Deleting_All_Graphics.html