|
下午终于有了点空闲时间,来论坛里溜达了一圈没啥新鲜好玩的,便争分夺秒系统的学习了一下collection对象。方法属性太少,学起来很简单。
刚学习完还兴高采烈了一番,以后终于不用redim preserve数组了,——感觉上,包括论坛里前辈们的说法,这样效率很低。
装入collection对象数组,然后直接定义一个完美尺寸的数组将collection的item倒进去直接糊单元格里效率应该要快一些。——我是这样想的,结果一试验,大失所望。效率低到简直不能忍。
没有丁点儿有含量的东西,只是我试验了而可能很多老师一直在用没有验证过而已,所以发上来。
若试验方法错误,还请老师们指正。
Option Explicit
Option Base 1
Sub test()
Dim col As New Collection
Dim i&
Dim brr()
Dim t As Single
t = Timer
For i = 1 To 30000
col.Add Fix(Rnd * i)
Next
ReDim brr(col.Count, 1)
For i = 1 To UBound(brr)
brr(i, 1) = col(i)
Next
[a1].Resize(UBound(brr)) = brr
MsgBox Format(Timer - t, "0.0000")
Set col = Nothing
End Sub
Sub test2()
Dim brr()
Dim i&, n&
Dim t As Single
t = Timer
For i = 1 To 30000
n = n + 1
ReDim Preserve brr(1, n)
brr(1, n) = Fix(Rnd * i)
Next
[b1].Resize(n) = Application.Transpose(brr)
MsgBox Format(Timer - t, "0.0000")
End Sub
方法一用时3.2秒多,方法二用时不到0.6秒
|
|