vba - Iterating 100 cells takes too long -


in excel vba code, need move data range sheet.

as of now, i'm iterating through range , copying values this:

for offset = 0 101         activeworkbook.sheets(sheet).range("c3").offset(offset, 0).value = activesheet.range("d4").offset(offset, 0).value     next offset 

however, takes minute iterate , copy values 100 cells.

would better off using copy-paste programatically, or there way copy entire range @ once? like:

activeworkbook.sheets(sheet).range("c3:c102").value = activesheet.range("d4:d104").value 

you can read entire range @ once variant array, , write range. quick, flickerless, , has added bonus can code operations on data if inclined.

dim vardummy variant vardummy = activesheet.range("d4:d104") ' can insert code stuff vardummy here workbook.sheets(sheet).range("c3:c103") = vardummy 

this learned hard way: avoid copy/paste if @ possible! copy , paste use clipboard. other programs may read / write clipboard while code running, cause wild, unpredictable results.

also, it's idea minimize number of interactions between vba , excel, because slow. having such interactions in loop multiply slow.


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -