VBA | 统计数组某元素出现的次数,适用于一维、二维数组
很简单的需求,但是中文网络上基本都是循环的方法,经过查找下面的方法很有效。为了方便用户的使用,进行了如下的整改。
1 Sub Statistics_Number_of_occurrences_test()
2 MyArray = Array("1", 23, 3, "1")
3 MsgBox Application.count(Application.Match(MyArray, Array("1"), 0)) '统计字符串"1"的出现次数,返回2
4 End Sub
为了便于使用,写成函数,用户可以调用该函数 Statistics_Number_of_occurrences(s, arr) 直接使用。
1 Function Statistics_Number_of_occurrences(s As Variant, arr As Variant) As Integer
2 '------------适用于一维数组、二维数组----------
3 '------------博客园:IssacNew------------------
4 '----https://www.cnblogs.com/issacnew/---------
5 Statistics_Number_of_occurrences = Application.count(Application.Match(arr, Array(s), 0))
6 End Function
1 '------使用例子-----
2 Sub test()
3 Dim s, arr1, arr2
4 s = 1
5 arr1 = Array(1, 2, 3, 3, 2, 1) '一维数组
6 arr2 = Array(Array(1, 2, 3, 1, 2, 1), Array(1, 2, 3, 3, 2, 1))
7 MsgBox Statistics_Number_of_occurrences(s, arr1) '一维数组,统计1出现的个数,返回3
8 MsgBox Statistics_Number_of_occurrences(s, arr2) '二维数组,统计1出现的个数,返回5
9 End Sub
参考资料:
01. https://www.mrexcel.com/board/threads/countif-for-vba-array-without-a-loop.739653/#post3635486
02. https://stackoverflow.com/questions/45367671/vba-array-countif
VBA | 统计数组某元素出现的次数,适用于一维、二维数组的更多相关文章
- 【面试题003】c数组做为参数退化的问题,二维数组中的查找
[面试题003]c数组做为参数退化的问题,二维数组中的查找 一,c数组做为参数退化的问题 1.c/c++没有记录数组的大小,因此用指针访问数组中的元素的时候,我们要确保没有超过数组的边界, 通过下面 ...
- 二维数组过滤,根据多个条件获取二维数组中指定的arr
/** * 二维数组过滤,根据多个条件获取二维数组中指定的arr * @param $data_arr * @param $lm_number * @param $source_type * @par ...
- 【c语言】二维数组中的查找,杨氏矩阵在一个二维数组中,每行都依照从左到右的递增的顺序排序,输入这种一个数组和一个数,推断数组中是否包括这个数
// 二维数组中的查找,杨氏矩阵在一个二维数组中.每行都依照从左到右的递增的顺序排序. // 每列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个数组和一个数.推断数组中是否包括这个数 #i ...
- 数组属性的习题、Arrays工具、二维数组
一.数组的练习 1.声明一个char类型的数组, 从键盘录入6个字符: [1]遍历输出 [2]排序 [3]把char数组转化成一个逆序的数组. import java.util.Scanner; pu ...
- java 数组基础学习(一维二维数组)
1.一维数组 1>静态初始化:数据类型[ ] 变量名 = {元素} 例:int[ ] arr = {1,2} 动态初始化:数据类型[ ] 变量名 = new数据类型[数据长度] 例:int[ ] ...
- C语言数组篇(五)多级指针和二维数组指针的区别
多级指针 以二级指针为例 二级指针的由来是 指针数组 的指针形式. int *p[10] 读取的顺序是 p[] --> 10个空间的数组 * p[] --> 这10个空间的数组里面存放 ...
- Java中一维,二维数组的静态和动态初始化
今天我们要开始来讲讲Java中的数组,包括一维数组和二维数组的静态初始化和动态初始化 数组概述: 数组可以看成是多个相同类型数据的组合,对这些数据的统一管理; 数组变量属于引用数据类型,数组也可以看成 ...
- 二维数组的传输 (host <-> device)
前言 本文的目的很明确:介绍如何将二维数组传递进显存,以及如何将二维数组从显存传递回主机端. 实现步骤 1. 在显存中为二维数组开辟空间 2. 获取该二维数组在显存中的 pitch 值 (cudaMa ...
- 第六篇:二维数组的传输 (host <-> device)
前言 本文的目的很明确:介绍如何将二维数组传递进显存,以及如何将二维数组从显存传递回主机端. 实现步骤 1. 在显存中为二维数组开辟空间 2. 获取该二维数组在显存中的 pitch 值 (cudaMa ...
- Arrays工具、二维数组以及LeetCode练习题
1 Arrays PS:Arrays位于java.util包下 int binarySearch(type[] a, type key); 使用二分法查询 key 元素在 a 数组中的索引,如果数组不 ...
随机推荐
- C 语言编程 — 高级数据类型 — 结构体与位域
目录 文章目录 目录 前文列表 结构体 定义结构体 初始化结构体变量 访问结构体成员 将结构体作为实参传入函数 指向结构体变量的指针 位域 定义位域 使用位域结构体的成员 前文列表 <程序编译流 ...
- 组合数学:Burnside引理和Polya定理解决染色置换问题
例题 给3x3的格子上色,4种颜色,可以重复.排除旋转后相同的情况,请问有多少种不同的上色方法? 解答 设格子编号如下: | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 ...
- 解决 C# 连接oracle 读出中文乱码的问题
一开始,我使用odbc连接oracle,发现中文变成了??,这种已经成了??的乱码是不能通过 Text.Encoding的方式来转码的. 1.我到处查资料,发现有说设置客户端 系统变量 把 远程服务器 ...
- yapi-plugin-notifier 插件安装报react 16.9.0版本错误 解决
使用yapi 1.9.2版本. 将配置的json文件替换掉. 参考这个issues解决方案:https://github.com/YMFE/yapi/issues/2109
- wpf 动画显示隐藏_[UWP]用Win2D和CompositionAPI实现文字的发光效果,并制作动画
weixin_39880899于 2020-12-11 09:26:23 发布 阅读量521 收藏 点赞数 文章标签: wpf 动画显示隐藏 1. 成果 献祭了周末的晚上,成功召唤出了上面的番茄钟 ...
- 7.20考试总结(NOIP模拟21)[Median·Game·Park]
雨滴降落的速度是每秒十米,我该用怎么样的速度,才能将你挽留? 前言 关于语文素养如何限制OI水平2,正好现在文化课巨佬们正在考语文(那我走???) T1 我以为整数是不用输出 .0 的,然后喜挂 30 ...
- MYSQL 移机重装步骤(windows11)
MYSQL 移机重装步骤(windows11) 目的:已有电脑 A,D盘安装有mysql(安装方式为免安装) , 准备在另一台电脑B上,复制安装电脑A上的mysql(8.0.23版本) . 要 ...
- itest(爱测试)开源接口测试&敏捷测试&极简项目管理 7.7.7 发布,接口测试重大升级
(一)itest 简介及更新说明 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock 6合1,又有丰富的统计分析.可按测试包 ...
- .NET 8 IApplicationBuilder详解
在上节中我们已经得知 WebApplication 实现了 IApplicationBuilder,我们浅谈了其pipe特质和构建方法,本节中将深入了解 ApplicationBuilder 以窥探 ...
- C#.NET根据不同业务类别类型写入不同文件中,动态创建log4net实例验证
C#.NET根据不同业务类别类型写入不同文件中,动态创建log4net实例验证 参考了:https://www.cnblogs.com/-dawn/p/8598566.html GetLog4netI ...