在我的excel VBA代碼中,我需要將一些數據從一個範圍移動到另一個工作表。迭代100個單元需要很長的時間
截至目前,我通過迭代的範圍,並複製值是這樣的:
For offset = 0 To 101
ActiveWorkbook.Sheets(Sheet).Range("C3").offset(offset, 0).Value = ActiveSheet.Range("D4").offset(offset, 0).Value
Next offset
但是,它需要幾乎一分鐘,重複和複製值的100個單元。
我會更好地使用Copy-Paste以編程方式,還是有辦法一次複製整個範圍?類似:
ActiveWorkbook.Sheets(Sheet).Range("C3:C102").Value = ActiveSheet.Range("D4:D104").Value
我希望不需要複製粘貼,因爲當你這樣做時,你的工作表視圖從源工作表跳轉到目標工作表。我需要重複這個總共20次,最後我會盯着excel閃爍的表單。但我會嘗試一下,如果性能明顯加快,我就不得不去做。 – xbonez 2011-02-17 22:35:48
有趣的是,僅需100行就需要45秒。我有一個宏,可以一次遍歷1000行,並且可以從另一個電子表格中更新大約50個左右的宏,並且它在幾秒鐘內都可以工作。 – joshhendo 2011-02-18 09:28:13
重要注意事項計入Application.Calculation。如果打開了計算,則單元格中輸入的每個值都會觸發重新計算(每個工作簿打開)。 – CaBieberach 2011-02-19 12:18:35