求vbavba二维数组转置函数代码

大家好,我们今日继续讲解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 代码截图:这里,我们用“[C1:C60000]= Application.WorksheetFunction.Transpose(arr)”代替了代码的For循环,不知大家是否还记得我之前讲到的代码呢: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秒,那么上面的代码有时会是多少呢?我们看看运行的结果:仅用了0.0625秒,提高了多少倍呢?大家可以算一算。是16倍以上! 所以在大批量的数据需要写入时,我建议尽量不要用循环的方式写入。二 数组批量写入时需要特别注意的几点。1 一维数组写入单元格区域时,这个单元格必须是水平方向的,也就是一个一行多列的单元格区域,如果想写入垂直区域,必须使用工作表的Transpose函数转换一下;2 和工作表的多单元格数组公式一样,数组写入单元格时,单元格的区域必须和数组的大小一致。今日内容回向:1 数组批量写入如何能有效的节约时间呢?2 转置函数大家是否还记得呢? 《VBA代码解决方案》终于可以和大家见面了,是我将一些非常实用的VBA内容结集成册,PDF文件,可以从中直接查找到你想要解决问题的思路和方法,可以复制文中的VBA代码直接使用。有需要的朋友微信联络我NZ9668。

我要回帖

更多关于 vba二维数组转置函数 的文章

 

随机推荐