大家好,欢迎来到IT知识分享网。
今天,有网友表示,想学一下VBA数组的应用。
下面我就讲一个简单的例子,将一个960行12列的数据重新整理,放到P列
源数据如图所示:
接下来我先运用遍历单元格的方法来实现,代码如下
Sub Main() t = Timer Application.ScreenUpdating = False Dim r r = 1 For i = 1 To 960 For j = 1 To 12 Cells(r, 16) = Cells(i, j) r = r + 1 Next Next Application.ScreenUpdating = True MsgBox (Timer - t)'显示程序运行时间 End Sub
代码很好理解,遍历每个单元格,然后依次复制到P列
代码运行效果如下:
可以看出,一共用时0.289秒
下面,我用数组的方法来实现,代码如下:
Sub Main_Arr() t = Timer Application.ScreenUpdating = False Dim arr Dim arrP() Dim r, c, n arr = Sheets(1).[A1].CurrentRegion '将数据存入数组arr,arr是个二维数组 r = UBound(arr) '获取数组的第一维的最大下标,即数据的行数 c = UBound(arr, 2) '获取数组的第二维的最大下标,即数据的列数 ReDim arrP(1 To r * c) '设定一维数组arrP的大小 '遍历数组arr,将每个元素复制到arrP n = 1 For i = 1 To r For j = 1 To c arrP(n) = arr(i, j) n = n + 1 Next Next [P1].Resize(r * c, 1) = Application.Transpose(arrP) '将一维数组arrP(一行)转置成一列,放到P列 Application.ScreenUpdating = True MsgBox (Timer - t) End Sub
代码运行效果如下:
可以看出,用数组实现一共用时0.086秒,速度明显快多了,如果数据量更大,那么数组优势将会更明显。
大家可以点开下面链接,查看我的其他文章哦!
848个Excel VBA 实用技巧,实例+详细解析,入门必看,建议收藏
Excel VBA 之 去除重复项
Excel VBA 之 随机抽取数据
Excel VBA 之 随机抽取数据(续集)
Excel VBA 之 统计词汇出现次数
Excel VBA 之 按需求移动、复制文件
等等…
喜欢本文章的朋友记得收藏、点赞、关注哦,网友们如果在Excel中遇到问题都可以找我交流,也可以在评论区或私信告诉我你想看到的VBA办公教程,我将在下期分享给大家,以后不定期更新Excel VBA技巧!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/166242.html