View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default Fast export large 2-dim array to worksheet

Sub test()
Dim are(1 To 10000, 1 To 50) As Double
Dim r As Long, c As Long

For c = 1 To 50
For r = 1 To 10000
ar(r, c) = r + (c / 100)
Next
Next
Range(Cells(1, 1), Cells(10000, 50)).Value = ar

End Sub


Around this size it might be faster to start breaking down into smaller
arrays before dumping.

Regards,
Peter T

"aafraga" wrote in
message ...

Hello Excel Community,

For many years, I have been programming in EXCEL VBA and often use 2
dimensional arrays, usually of type Double of Variant. Normally, I
would declare the array such as :
Dim aMatrix(10000,50) as Double

Some math code would populate all the cells and I would then print the
aMatrix to a worksheet by nesting in a double loop:
for i...
for j...
Sheet1.Cells(i,j).Value = aMatrix(i,j)

The problem here is that Excel really slows down after a couple of
thousand.
Is there a fast way to bulk copy an array to a worksheet ?

I am looking for a function along the lines of
FastCopytoWorkSheet (aMatrix() as double, aRange as Range)
...

Is it best to just turn off screen updating or is there a more elegant
way ?
Many thanks and best regards,
Alberto


--
aafraga
------------------------------------------------------------------------
aafraga's Profile:

http://www.excelforum.com/member.php...o&userid=31314
View this thread: http://www.excelforum.com/showthread...hreadid=510013