网站首页 > 教程分享 正文
大家好,我们今日继续讲解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循环,不知大家是否还记得我之前讲到的代码呢?如下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的代码会用时会是多少呢?我们看看运行的结果:
仅用了0.0625秒,提高了多少倍呢?大家可以算一算。是16倍以上! 所以在大批量的数据需要写入时,我建议尽量不要用循环的方式写入。
二 数组批量写入时需要特别注意的几点。
1 一维数组写入单元格区域时,这个单元格必须是水平方向的,也就是一个一行多列的单元格区域,如果想写入垂直区域,必须使用工作表的Transpose函数转换一下;
2 和工作表的多单元格数组公式一样,数组写入单元格时,单元格的区域必须和数组的大小一致。
今日内容回向:
1 数组批量写入如何能有效的节约时间呢?
2 转置函数大家是否还记得呢?
猜你喜欢
- 2024-09-17 c语言 数组(c语言数组定义)
- 2024-09-17 VBA数组与字典解决方案的第17讲:工作表数组大小扩展及意义
- 2024-09-17 Linux编程Shell之入门——Shell获取数组长度
- 2024-09-17 HashMap数组长度为什么是2的n次方
- 2024-09-17 2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums
- 2024-09-17 VBA中动态数组的定义及创建(vba 动态)
- 2024-09-17 C语言数组那些事儿,C语言基础教程之数组
- 2024-09-17 一文看懂PG数据类型之数值类型、字符类型、日期类型、数组类型
- 2024-09-17 C语言基础之数组(c语言数组语句)
- 2024-09-17 2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两
你 发表评论:
欢迎- 最近发表
-
- 有了这份900多页的Android面试指南,你离大厂Offer还远吗?
- K2 Blackpearl 流程平台总体功能介绍:常规流程功能
- 零基础安卓开发起步(一)(安卓开发入门视频)
- 教程:让你的安卓像Windows一样实现程序窗口化运行
- Android事件总线还能怎么玩?(事件总线有什么好处)
- Android 面试被问“谈谈架构”,到底要怎样回答才好?
- Android开发工具Parcel和Serialize
- Android 中Notification的运用(notification widget安卓)
- Android退出所有Activity最优雅的方式
- MT管理器-简单实战-去除启动页(mt管理器怎么去除软件弹窗)
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)