VBA 复制粘贴很多数据比较慢怎么办

今天继续讲讲练习啦~

这几天的内容实在有点水,主要是杂七杂八事比较多,耽误了蛮多时间,后面争取多找找资料,写点干货

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

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值