Excel 2016 VBA-复制非常慢

时间:2018-09-05 02:49:00

标签: excel vba ms-office

我最近将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

1 个答案:

答案 0 :(得分:0)

我最近遇到了类似的问题。 Excel 需要几分钟来复制工作表的一部分,比如 12x500 单元格的区域。就我而言,结果证明细胞已经拾取了一些不可见的图形,可能来自它们在网页上的来源。因此,如果您在复制操作时遇到 excel 挂起,需要检查的一件事是您的工作中是否存在图像对象。

这里有一个快速的过程来查找和删除它们: https://excel.tips.net/T003018_Deleting_All_Graphics.html