如何加快Excel vba中复制单元格的速度

时间:2010-06-04 15:00:53

标签: excel vba excel-vba

我有这个Excel VB代码,每次执行此行后,它会暂停半秒:

Worksheets(ws.Name).Range("A" & i & ":G" & i).Copy _
Destination:=Worksheets("Sheet1").Range("A" & emptyCell)

有人可以告诉我它在做什么,以及如何阻止它花这么长时间?

我在Windows XP专业版上有Microsoft Excel 2007

更新:如果我手工粘贴它,它会等待相同的时间。

2 个答案:

答案 0 :(得分:2)

这一切都取决于硬件的规格(硬盘驱动器,内存,网络连接等)。如果它在网络上运行,那将是最大的瓶颈。代码没有任何内在错误。

您还可以尝试通过将工作簿计算设置为手动以及关闭屏幕更新来加快例程。如果计算是自动的,它将在每次复制呼叫时计算。

答案 1 :(得分:0)

它正在从分配给变量ws的工作表中复制一系列单元格并将其粘贴到Sheet1。

它复制的范围来自分配给变量i的行号中的A:G。

将范围粘贴到Sheet1中分配给变量emptyCell的行号中的A列。

您可以通过在每行前面添加撇号来阻止它。

但是,您可能首先想要探索代码为什么这样做!