今天继续讲讲练习啦~
这几天的内容实在有点水,主要是杂七杂八事比较多,耽误了蛮多时间,后面争取多找找资料,写点干货
VBA复制几十万行太慢怎么办?怎么提升效率其实之前讲过啦~
比如创建一个20万行*20列的数据,复制到另一张表,怎么样创建比较快呢?
要是想着循环20万次,每次都赋值一次到单元格,那可就太慢了,最好就是先循环赋值给数组,再讲数组的值赋值给单元格,这样几秒钟就可以搞定咯~
Sub myCreate()
'在sheets(1)上随机生成20万*20列的数据(大概3-4秒完成)
'基本思路是先将值赋值给数组,数组再直接赋值给range区域
Dim myArray(1 To 200000, 1 To 20)
Dim myRng As Range
For i = 1 To 200000
For j = 1 To 20
myArray(i, j) = Rnd
Next
Next
Set Rng = Sheets(1).Range(Cells(2, 1), Cells(200001, 20))
Rng.Value = myArray
End Sub
Sub myPaste()
'粘贴先设置个Variant,在复制过去(大概3-4秒完成)
Dim x As Variant
Dim myRng As Range
Set myRng = Sheets(2).Range("a2")
Set x = Sheets(1).Range("A2:T200001")
x.Copy myRng
End Sub