二维数组 赋值_【VBA】数组的应用

2023-05-16

任何编程语言都离不开数组的应用,同样的,VBA也不例外,今天给大家讲讲数组的一些知识。 什么是数组?数组其实就是一组数据,存在于我们的内存中,我们看不到。在我们日常应用中,我们基本只用得到一维和二维数组,本文主要讲解这两种。 15d364a10884f6adf55058745642ec23.png

一维数组中是一行多列数据,用逗号分隔。

如下代码,我定义了一个数组,然后给数组赋值,再将数组的数据赋值给单元格中。

f17248e2649a5d747b47fa6ec96ed301.png

784b5443853845499f267ba4234d7e47.png

二维数组其实就是一组多行多列的数据。 如下代码,我定义了一个4行4列的数组,然后给数组部分元素赋值,再将数组整体赋值到单元格。

e11549ad6debd2a191be64b1c99e53e4.png

注意:arr(1 To 4, 1 To 4)  中,第一个参数的1 to 4,1代表数组的上界,4代表数组的下界,可以用对应的函数求出数组的上下界,上界到下界也就是数组的范围。

5b295c3234afd74fca3f3070fd9c4661.png

Lbound    上界 Ubound    下界 如下代码:

我定义了一个二维数组arr,一个一维数组brr,然后将arr,brr的上下界赋值到arr中,然后将arr数据赋值到A1:B4单元格区域。

我们可以发现,无论是一维数组,还是二维数组,他的上界都是第一个参数的上界,下界都是第一个参数的下界。而一维数组是一行多列的数据,所以上下界就是列的上下界,二维数组的上下界就是行的上下界。

476fa96c93787effa0146e292dbbaf6f.png
Sub arrtwo()    Dim arr(1 To 4, 1 To 2)    Dim brr(2 To 10)    arr(1, 1) = "arr的上界"    arr(1, 2) = LBound(arr)    arr(2, 1) = "arr的下界"    arr(2, 2) = UBound(arr)    arr(3, 1) = "brr的上界"    arr(3, 2) = LBound(brr)    arr(4, 1) = "brr的下界"    arr(4, 2) = UBound(brr)    Range("A1:B4") = arrEnd Sub
注意:如果在数组中,我们没有指定范围,数组默认的第一个标记是0,不是1。一维数组的第一个元素是arr(0),二维数组的第一个元素是arr(0,0)

4c52b2e090d05e63649b0c64b724a5ee.png

Sub ExChanDate()     Dim arr(), brr()     arr() = Range("A1:A4").Value       brr() = Range("B1:B4").Value      Range("A1:A4") = brr()       Range("B1:B4") = arr()  End Sub

代码解析:

第2行:定义两个数组

第3-4行:分别将A1:A4数据,B1:B4数据赋值给arr,brr两个数据

第5-6行:将arr,brr数组的数据分别赋值给B1:B4,A1:A4,实现数据的交换

2b825a543312c06041dbb8096d898d73.gif

注意:此处虽然我没有申明数组的上下界,但是此处数组上界是1,将单元格中的数据赋值给数组时,上界都是1,且都为二维数据。

也就是说,将单元格中的数据赋值给数组时,无论是一行,还是一列,赋值到数组中时,都是二维数组。

如以下代码:

我将单元格中的一行数据赋值给arr(),我再给arr()中单个元素赋值时,第一项数据是arr(1,1),第二项数据是arr(1,2),而不是arr(1),arr(2),这是因为arr()在此处是二维数组。
Sub test()    Dim arr()     arr() = Range("A1:D1").Value     arr(1, 1) = 1                '此处不能用arr(1),因为arr()是二维数组    arr(1, 2) = 2     Range("A1:D1") = arr End Sub

b4079b61e43589cb6cd993cb9a46f9ae.png

2211daf05e28a755d63b96d126f007c2.png

1)大大加快运行代码速度,特别是在循环中,利用数组进行运算会比直接引用单元格快很多。

2)增加代码的可读性

3)便于修改代码

本文是一些数组的基本用法,希望同学们能够理解,在之后的一些文章中,进行数据处理时,大部分都会使用到数组。到时候再带领大家深刻认识数组的一些用法。本文就到这啦,如果文章对你有用的话,点个在看或者分享给你的朋友,大家一起学习吧ed5f6746c0253a273430340b75be0b10.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二维数组 赋值_【VBA】数组的应用 的相关文章

随机推荐