今天和大家要说的是VBA数组的应用,上篇文章我们说的是数组的基础知识点,有不明白的小伙伴可以点击链接进行知识点回顾,今天主要说说数组的几个操作方法,这个是我们以后会经常遇到的,也是经常会使用的方法。
上篇文章回顾:
Excel VBA 数组基础知识,初学者不可不学的关键知识
数组的合并和字符串拆分(Join & Split)
在Excel的数据处理时候,我们经常会遇到拆分和合并的操作,可能你在Excel中的基础操作都会,但是我们如果要操作数组呢?数组是在我们内存之中的,我们无法再Excel中可以看到,除非是在本地窗口中可以看到。
一起来看看例子:
拆分字符串 split(字符串,"分隔符")
用分隔连接数组的每个元成一个字符串 join(数组,"分隔符")
是不可以看到这2个函数的用法其实很简单,他们的作用是相反的,一个是合并,一个拆分,天下分分合合,就在你和我之间。有么有喜欢上这对冤家?
但是需要注意的一点是,他们都只能操作一维数组,这个是比较限制的。如果们在二维数组时候,想使用个方法,我们应该第一步转化成一维数组,然后在操作即可。
Filter实现数组筛选:
其实数组的筛选就是根据我们指定的条件,从数组中筛选出来符合我们指定条件的值,然后在组成一个新的数组。这个操作你肯定不陌生,如下图所示,我们在Excel中的常规操作:
但是今天我们猪脚是在数组中进行帅选,我们用的是Filter函数,用法是:Filter(数组, 筛选的字符, 是否包含)
我们可能只说使用方法,其实你还是不太明白,我们举一个例子,你看了就明白,如需他所示:
Arr是我们利用常数数组进行赋值的数组,arr1是我们帅选包括字符”A”的新组成的一个数组,arr2,是我们帅选出来不包括“A”的新数组。不知道你发现没有,我们在数组中使用这个函数的时候,只能模糊帅选,并不能精确进行帅选,这个请务必注意一点。
取出数组中的最大值和最小值(Max和Min)
在Excel中我们取出最大值和最小值,我们都是用的MAX和MIN函数,其实这2个在我们的数组中,亦可使用,具体使用方法如下所示:
顺便再说一下,我们也可以取出数组的第几大值和几小值,如下:
这个方法在我们统计数据的时候,经常会用到。
数组求和
在数组中,我们同样可以求和,同样也是借用工作表函数SUM来完成,我们一起看看:
是不是发现,数组怎么这么好用?其实数组操作还不止这些,我们在继续看看:
数组的计数Count和Counta
Count和Counta可以统计数组中数字的个数和数字+文本的个数。如下图所示:
Count和Counta在数组中和Excel中的使用方法是一样的,是通用的。
数组的查询和拆分
假如我们已经有了一个数组,但是我们想查询其中的某一个值,通过帅选只能模糊匹配,那我们有没其他的方法呢?如下:
数组从二维拆分成一维,你是否还记得我们上篇文章说的?
我们可以借用工作表函数index达到按列拆分数组,即多列构成的数组,你可以任意拆分出一列构成新的数组。方法是:Application.Index(数组, , 列数) :
数组拆分其实在VBA中间很难操作,有时候我们是借用API函数,或者说这个函数有多少人知道呢?所以我们一般记下index函数拆分数组即可:
数组维数的转换
今天说的最后一个,数组的维数的转变。这个也可借用工作表函数来完成这个,我们一起来看看吧 !
在转置时只有1列N行的数组才能直接转置成一维数组,这个请注意一下,否则会报错的。
其实我们很多的工作表函数都可以在我们的Excel中进行使用,我们可以自行尝试一下,看看实际的效果。
以上就是我们今天和大家说的代码的中的数组常用技巧,其实VBA代码学习起来非常简单,他就是一个脚本语言的存在,他有自己的条条框框,你按照他的游戏规则来写代码就可以。如果有不明白的或者不懂的可以在下方留言,我们会一一解答的。
我是Excel教案,关注我持续分享更多的Excel技巧!