返回列表 上一主題 發帖

[發問] CELLS(1,1)和 .[a1]的問題.

回復 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

TOP

        靜思自在 : 不要小看自己,因為人有無限的可能。
返回列表 上一主題