如何加快在Excel VBA复制单元格

我有这个Excel的VB代码,每次执行这行后,它停顿了半秒钟:

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

有人可以告诉我它在做什么,我怎么能阻止它这么久?

我在Windows XP专业版上安装了Microsoft Excel 2007

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

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

您也可以尝试通过将工作簿计算转换为手动来加速例程,并closures屏幕更新。 如果计算是自动的,它会计算每个复制呼叫。

它复制工作表中指定给variablesws的一系列单元格,并将其粘贴到Sheet1。

它正在复制的范围是从分配给variablesi的行号中的A:G开始的。

它将范围粘贴到分配给variablesemptyCell的行号的Sheet1的A列中。

您可以通过在每行前加一个撇号来防止它。

不过,你可能首先希望探索为什么代码是这样做的!