- 帖子
- 155
- 主題
- 1
- 精華
- 0
- 積分
- 200
- 點名
- 4
- 作業系統
- windwos 7
- 軟體版本
- 64bit
- 閱讀權限
- 20
- 註冊時間
- 2017-5-29
- 最後登錄
- 2026-10-25
|
回復 1# dou10801
還有一種不同,2個寫法速度差超很多的
在學習各位高手的程式碼發現,01的文章都用cell()比較多,這裡大家都愛用[]
用[]只是程式碼漂亮,不管寫入還是讀取都慢
真搞不懂為什麼大家都愛用慢的:(
試試看,+rnd(),是避免快取影響結果
Sub 讀()
Dim rr As Double
Dim s As Double
Dim cc As Double
Range("a1") = 1
s = Timer
For rr = 1 To 99999
cc = Cells(1, 1) + Rnd(Timer)
Next rr
MsgBox "讀cells(1,1)=" & Timer - s
s = Timer
For rr = 1 To 99999
cc = [a1] + Rnd(Timer)
Next rr
MsgBox "讀[a1]=" & Timer - s
End Sub
Sub 寫()
Dim rr As Double
Dim s As Double
Application.ScreenUpdating = False
s = Timer
For rr = 1 To 99999
Cells(1, 1) = rr + Rnd(Timer)
Next rr
Application.ScreenUpdating = True
MsgBox "寫cells(1,1)=" & Timer - s
Application.ScreenUpdating = False
s = Timer
For rr = 1 To 99999
[a1] = rr + Rnd(Timer)
Next rr
Application.ScreenUpdating = True
MsgBox "寫[a1]=" & Timer - s
End Sub |
|