說明一次寫入與copy 方式時間差距:
Sub CommandButton1_Click()
Debug.Print "陣列大量資料寫入"
t = Timer
DD = ActiveSheet.Range("A1:E1337")
Debug.Print "資料筆數" & Application.CountA(DD)
Sheets(2).Range("A1:E1337") = DD
Debug.Print "花費時間" & Timer - t
Debug.Print "copy 資料寫入"
t = Timer
ActiveSheet.Range("A1:E1337").Copy Sheets(2).Range("A1")
Debug.Print "花費時間" & Timer - t''
DD = Array(1, 2, 3)
ActiveSheet.Range("h1:j1") = DD
Debug.Print "一維陣列不支援不連續"
ActiveSheet.Range("h3,i3,l5") = DD
End Sub
資料分散時怎辦?
用FOR EACH IN,於不連續儲存格寫入技巧,解說SET物件的技巧
Sub 寫入陣列到儲存格a()
Dim 資料陣列 As Variant
Dim i As Integer
' 將資料存入陣列
資料陣列 = Array(1, 2, 3)
' 將設置 range 物件
Set myrange = ActiveSheet.Range("a1,b3,a10")
i = 0
For Each a In myrange
ActiveSheet.Range(a.Address).Value = 資料陣列(i)
i = i + 1 '
Next
End Sub
沒有留言:
張貼留言