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
Post a Comment