2010-06-04 23 views
1

我有這個Excel VB代碼,每次它執行這條線後,它會暫停半秒鐘複製單元格:如何加快在Excel VBA中

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

誰能告訴我它是什麼做的,以及我如何防止這麼長時間?

我有Microsoft Excel 2007中的Windows XP專業版

更新:如果我的手貼吧,等待大約相同數量的時間。

回答

2

這一切都取決於硬件的規格(硬盤驅動器,內存,網絡連接等)。如果它在網絡上運行,那將是最大的瓶頸。代碼沒有任何內在的錯誤。

您還可以嘗試通過將工作簿計算轉換爲手動並關閉屏幕更新來加速例程。如果計算是自動的,它會計算每次複製呼叫。

+0

自動重算是它做了什麼。 – 2010-06-04 16:42:48

0

它複製工作表中指定給變量ws的一系列單元格並將其粘貼到Sheet1。

它正在複製的範圍是從分配給變量i的行號中的A:G開始的。

它將範圍粘貼到分配給變量emptyCell的行號的Sheet1中的列A中。

您可以通過在每行前加一個撇號來防止它。

但是,您可能首先希望探索爲什麼代碼是這樣做的!

+0

不,我在問爲什麼這麼長時間。 – 2010-06-04 15:58:50

+0

好吧,我告訴過你它在做什麼。 – dendarii 2010-06-07 08:23:18

+0

對不起,我只是意識到我也問過這個問題(儘管這不是我的意思),我的道歉,但downvote現在被鎖定。 – 2012-01-09 15:35:54