Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
This copy/paste special code is the last part of a macro that I run 100 times in a loop.
Using a timer, it takes 5.397 seconds to run. It produces 2000 rows of output data. Not too bad in my eyes. If I comment out the copy lines, the macro runs 100 times in .847 seconds. (Thanks Claus) I am not unhappy with the 5 + seconds run time, and the six square wheeled copy wagons the macro has to drag along are necessary. Was just wondering if the copy paste could be written to be quicker. If not, I am still a happy camper and content with the 5 + seconds. I pondered an array approach, but the six ranges to six different destinations were beyond me. Thanks, Howard Range("AQ2:AQ21").Copy Range("AE" & Rows.Count).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues Range("AQ24:AQ43").Copy Range("AG" & Rows.Count).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues Range("AQ46:AQ65").Copy Range("AI" & Rows.Count).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues Range("AQ68:AQ87").Copy Range("AK" & Rows.Count).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues Range("AQ90:AQ109").Copy Range("AM" & Rows.Count).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues Range("AQ112:AQ131").Copy Range("AO" & Rows.Count).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Howard,
Am Fri, 14 Mar 2014 03:54:49 -0700 (PDT) schrieb L. Howard: This copy/paste special code is the last part of a macro that I run 100 times in a loop. Using a timer, it takes 5.397 seconds to run. It produces 2000 rows of output data. Not too bad in my eyes. try: Sub MyCopy() Dim i As Long Dim arrOut As Variant Dim myCol As Long myCol = 31 For i = 2 To 112 Step 22 arrOut = Range("AQ" & i).Resize(rowsize:=20) Cells(Rows.Count, myCol).End(xlUp).Offset(1, 0) _ .Resize(rowsize:=20) = arrOut myCol = myCol + 2 Next End Sub Regards Claus B. -- Win XP PRof SP2 / Vista Ultimate SP2 Office 2003 SP2 /2007 Ultimate SP2 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On Friday, March 14, 2014 4:36:03 AM UTC-7, Claus Busch wrote:
Hi Howard, Am Fri, 14 Mar 2014 03:54:49 -0700 (PDT) schrieb L. Howard: This copy/paste special code is the last part of a macro that I run 100 times in a loop. Using a timer, it takes 5.397 seconds to run. It produces 2000 rows of output data. Not too bad in my eyes. try: Sub MyCopy() Dim i As Long Dim arrOut As Variant Dim myCol As Long myCol = 31 For i = 2 To 112 Step 22 arrOut = Range("AQ" & i).Resize(rowsize:=20) Cells(Rows.Count, myCol).End(xlUp).Offset(1, 0) _ .Resize(rowsize:=20) = arrOut myCol = myCol + 2 Next End Sub Regards Claus B. -- Indeed, drops it back to 1.532 seconds. Mighty fine! Thanks Claus. Howard |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Code takes a long time to process | Excel Programming | |||
ODBC takes time to update | Excel Programming | |||
Save takes long time | Excel Discussion (Misc queries) | |||
Get time it takes to run program!! | Excel Programming | |||
Calculating Time in XP takes forever | Excel Discussion (Misc queries) |