今天和大家要说的是VBA数组的基本知识点,等你学到后面就会知道,数组和字典搭配起来真的是事半功倍的啦!所以学习好数组的基本知识点也是必不可少的,基础知识有了,才能有后面的应用。
数组的基本概念
数组其实是一组拥有相同元素的的组合。我们可以使用数组名称和他在数组中的位置来指定某些特定的值。可以拥有很多的值,他们在数组内部是通过引索号进行区分的。其实数组是一个变量的存在,这个概念请好好理解。
声明数组
我们既然已经初步知道数组了,但是我们知道如何去声明数组吗?其实很简单,如下图:
以上是我们定义数组的基本方法,当然这个是定义一维数组的方法。但我们如何声明多维数组呢?如下图:
上图就是我们声明3维数组的方法。
如果我们引用三维数组的某个值,应该怎么引用?我们可以这样引用arr(1,1,1)的值。
动态数组
顾名思义,动态数组,就是数组的大小是可以改变的。我们在上面声明的都是固定大小的数组,但我我们有很多时候,并不知道我们需要使用的数组具体有多大,这个时候我们就要用动态数组了。如下就是我们声明了一个动态的数组。
动态数组需要注意的一点是,我们需要在代码中使用这个数组的时候,我们需要用在程序过程中用Redim语句去重新指定数组的大小。其实就是重新定义数组的大小,给他制定一个值。
当然定义动态数组,我们可以使用次数是没有限制的,即我们可以多次定义动态数组,但是这个时候我们重新定义了,里面原来储存的数值就会丢失。如果我们不想原来的数丢失我们需要用Preserve进行数组保存。如下图:
数组的创建
说了数组的声明,接着说数组是如何创建的。我们先看看以下几种数组创建的方法。
代码写入:我们可以看到数字已经存放在数组中了。
使用Array创建数组,直接使用常数数组,进行赋值操作。
直接赋值法,如下图:直接单元格区域的值,赋值给数组
有时候我个人更喜欢直接赋值法得到的数组方式。至于你个人更喜欢哪种,还是要看你自己的,他们的效率其实是差不多的。
数组的上标和下标
我们都知道数组的大小,那么肯定大家都想知道数组的大小,就是起始点和终点站的大小。请不要黄,我们有方法可以得到这个的大小,他就是我们的UBount和LBound函数。一起看看是如何实现 的吧!
要想知道数组arr的上界是多少,UBound(arr)
要想知道数组arr的下界是多少,LBound(arr)
是不是发现其实获得数组的大小其实非常的容易?
那我们如果想知道某一个动态数组的中的元素个数是多少?应该如何得到呢?
就是用我们的上标减去下标,然后加上1,就是我们数组中的元素个数。也即UBound(arr)- LBound(arr)+1。
写在最后的两点是我个人在学习过程中的心得:
(1)一维数组写入单元格区域时,这个单元格必须是水平方向的,也就是一个一行多列的单元格区域,如果想写入垂直区域,必须使用工作表的Transpose函数转换一下;
(2)和工作表的多单元格数组公式一样,数组写入单元格时,单元格的区域必须和数组的大小一致。
以上就是我们今天和大家说的代码的中的数组,其实VBA代码学习起来非常简单,他就是一个脚本语言的存在,他有自己的条条框框,你按照他的游戏规则来写代码就可以。如果有不明白的或者不懂的可以在下方留言,我们会一一解答的。
我是Excel教案,关注我持续分享更多的Excel技巧!
文章评论