分享

VBA统计数组中某元素的出现次数

 莫怜飘逸 2024-05-22 发布于广东

想要用VBA统计查找数组中特定元素的出现次数,通常我们可能想到的就是用for循环遍历数组,并设定一个计数变量,每遇到一次指定的元素计数变量便加1,遍历完数组就得到该元素的出现次数,但其实还有更快捷的方法,以下举例在数组【"西瓜", "葡萄", "香蕉", "香蕉", "葡萄", "香蕉"】中,查找“香蕉”的出现次数:

Sub 统计数组某元素出现的次数()
MyArray = Array("西瓜", "葡萄", "香蕉", "香蕉", "葡萄", "香蕉")
MsgBox Application.Count(Application.Match(MyArray, Array("香蕉"), 0))
End Sub

以上代码中,用到了match查找函数和Count统计数字函数。

match查找函数的作用,是查找一个值在数组中的位置,将该值所在数组中的位置返回,如果该查找值不在数组内,则会返回错误。

所以将MyArray数组里的值作为查找值,用“Application.Match(查找值, Array("香蕉"), 0)”,就能判断查找值是不是“香蕉”,是则返回1,不是则返回错误值#N/A

但光能判断一个值还不够,想要判断MyArray所有值,就要用到match查找函数的另一个特点:它的第1个参数“查找值”可以是数组。

如果“查找值”是数组,那么返回的结果也会是数组形式,所以用“Application.Match(MyArray, Array("香蕉"), 0)”,就能返回MyArray数组每个值对应的查找结果,形成数组{错误值,错误值,1,1,错误值,1}

此时返回的数组就可用Count函数,统计该数组中包含数字的元素个数,就可得到MyArray数组中“香蕉”元素出现的次数,也就是以上代码返回的结果“3”。

本文的分享到此结束,如果此文对您有帮助欢迎分享或转藏,避免以后找不到。想要了解更多VBA相关知识,欢迎到http://moqingyan.360doc.com我的个人图书馆查看。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多