首页 > 科技 >

16倍!数组写入速度大幅提高,是因为采用了批量写入的高效方式

2019-04-18 00:08:45 暂无 阅读:971 评论:0

人人好,我们今日持续讲解VBA代码解决方案的第113讲内容:VBA数组的深入讲解,数组批量写入的高效方式。

一 数组的批量写入

我们总在考究效率,对于数组的批量写入,实际上用一条语句就能够完成。将数组的内容写入单元格区域中,即:单元格区域=数组名,代码:

Sub Mynz_sz6()

'建立数组,并赋值

Dim arr(1 To 60000), i As Long

For i = 1 To 60000

arr(i) = i

Next i

'将数组的值写入单元格(c列)

[C1:C65536].Clear '消灭原稀有据

Dim startime As Double

startime = Timer

[C1:C60000] = Application.WorksheetFunction.Transpose(arr)

MsgBox "数组写入共用了" & Timer - startime & "秒!"

End Sub

代码截图:

16倍!数组写入速度大幅提高,是因为采用了批量写入的高效方式

这里,我们用"[C1:C60000]= Application.WorksheetFunction.Transpose(arr)"取代了代码的For轮回,不知人人是否还记得我之前讲到的代码呢?如下Mynz_sz5的内容:

Sub Mynz_sz5()

'建立数组,并赋值

Dim arr(1 To 60000), i As Long

For i = 1 To 60000

arr(i) = i

Next i

'将数组的值写入单元格(C列)

[C1:C65536].Clear '消灭原稀有据

Dim irow As Long

Dim startime As Double

startime = Timer

For irow = 1 To 60000

Cells(irow, 3) = arr(irow)

Next irow

MsgBox "数组写入共用了" & Timer - startime & "秒!"

End Sub

这段法式运行的时间是:1.07031秒,那么Mynz_sz6的代码会用时会是几多呢?我们看看运行的究竟:

16倍!数组写入速度大幅提高,是因为采用了批量写入的高效方式

仅用了0.0625秒,提高了几多倍呢?人人能够算一算。是16倍以上! 所以在多量量的数据需要写入时,我建议尽量不要用轮回的体式写入。

二 数组批量写入时需要稀奇注重的几点。

1 一维数组写入单元格区域时,这个单元格必需是水平偏向的,也就是一个一行多列的单元格区域,若是想写入垂直区域,必需使用工作表的Transpose函数转换一下;

2 和工作表的多单元格数组公式一般,数组写入单元格时,单元格的区域必需和数组的巨细一致。

今日内容回向:

1 数组批量写入若何能有效的节约时间呢?

2 转置函数人人是否还记得呢?

相关文章