今天和大家要说的是VBA数组的应用,上篇文章我们说的是数组的基础知识点,有不明白的小伙伴可以点击链接进行知识点回顾,今天主要说说数组的几个操作方法,这个是我们以后会经常遇到的,也是经常会使用的方法。

上篇文章回顾:​ ​Excel VBA 数组基础知识,初学者不可不学的关键知识​

数组的合并和字符串拆分(Join & Split)

在Excel的数据处理时候,我们经常会遇到拆分和合并的操作,可能你在Excel中的基础操作都会,但是我们如果要操作数组呢?数组是在我们内存之中的,我们无法再Excel中可以看到,除非是在本地窗口中可以看到。

一起来看看例子:

拆分字符串  split(字符串,"分隔符")

用分隔连接数组的每个元成一个字符串  join(数组,"分隔符")

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_字符串

是不可以看到这2个函数的用法其实很简单,他们的作用是相反的,一个是合并,一个拆分,天下分分合合,就在你和我之间。有么有喜欢上这对冤家?

但是需要注意的一点是,他们都只能操作一维数组,这个是比较限制的。如果们在二维数组时候,想使用个方法,我们应该第一步转化成一维数组,然后在操作即可。

Filter实现数组筛选:

其实数组的筛选就是根据我们指定的条件,从数组中筛选出来符合我们指定条件的值,然后在组成一个新的数组。这个操作你肯定不陌生,如下图所示,我们在Excel中的常规操作:

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_数组_02


但是今天我们猪脚是在数组中进行帅选,我们用的是Filter函数,用法是:Filter(数组, 筛选的字符,  是否包含)

我们可能只说使用方法,其实你还是不太明白,我们举一个例子,你看了就明白,如需他所示:

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_字符串_03


Arr是我们利用常数数组进行赋值的数组,arr1是我们帅选包括字符”A”的新组成的一个数组,arr2,是我们帅选出来不包括“A”的新数组。不知道你发现没有,我们在数组中使用这个函数的时候,只能模糊帅选,并不能精确进行帅选,这个请务必注意一点。

取出数组中的最大值和最小值(Max和Min)

在Excel中我们取出最大值和最小值,我们都是用的MAX和MIN函数,其实这2个在我们的数组中,亦可使用,具体使用方法如下所示:

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_字符串_04

顺便再说一下,我们也可以取出数组的第几大值和几小值,如下:

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_字符串_05

这个方法在我们统计数据的时候,经常会用到。

数组求和

在数组中,我们同样可以求和,同样也是借用工作表函数SUM来完成,我们一起看看:

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_字符串_06

是不是发现,数组怎么这么好用?其实数组操作还不止这些,我们在继续看看:


数组的计数Count和Counta

Count和Counta可以统计数组中数字的个数和数字+文本的个数。如下图所示:

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_字符串_07

Count和Counta在数组中和Excel中的使用方法是一样的,是通用的。


数组的查询和拆分

假如我们已经有了一个数组,但是我们想查询其中的某一个值,通过帅选只能模糊匹配,那我们有没其他的方法呢?如下:

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_字符串_08

数组从二维拆分成一维,你是否还记得我们上篇文章说的?

我们可以借用工作表函数index达到按列拆分数组,即多列构成的数组,你可以任意拆分出一列构成新的数组。方法是:Application.Index(数组, , 列数) :

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_一维数组_09

数组拆分其实在VBA中间很难操作,有时候我们是借用API函数,或者说这个函数有多少人知道呢?所以我们一般记下index函数拆分数组即可:


数组维数的转换

今天说的最后一个,数组的维数的转变。这个也可借用工作表函数来完成这个,我们一起来看看吧 !

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_一维数组_10

在转置时只有1列N行的数组才能直接转置成一维数组,这个请注意一下,否则会报错的。

其实我们很多的工作表函数都可以在我们的Excel中进行使用,我们可以自行尝试一下,看看实际的效果。

Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有_一维数组_11

以上就是我们今天和大家说的代码的中的数组常用技巧,其实VBA代码学习起来非常简单,他就是一个脚本语言的存在,他有自己的条条框框,你按照他的游戏规则来写代码就可以。如果有不明白的或者不懂的可以在下方留言,我们会一一解答的。

我是Excel教案,关注我持续分享更多的Excel技巧!