当前位置:网站首页>VBA:获取指定数值在指定一维数组中的位置
VBA:获取指定数值在指定一维数组中的位置
2022-08-10 09:40:00 【用户9949496】
文章背景:在采用VBA抓取数据时,有时需要判断指定数值是否在一维数组中已存在;如果存在,则希望能够获取该数值在数组内的位置。
在实践过程中发现,VBA的filter函数无法完全匹配指定数值;而借助Excel的match函数,可以实现完全匹配。接下来分别对Filter函数和Match函数进行介绍。
- Filter 函数
根据指定的筛选准则,传回包含字串阵列子集的以零为基础的阵列。
Filter ( sourcearray , match , [ include , [ compare ]])
- sourcearray 必要项目。要搜寻的字串的一维阵列。
- match 必要。要搜寻的字串。
- include 选用。指出是否传回包含或排除match的子字串的布尔值。若include为True,Filter则会传回包含match作为子字串的阵列子集。若include为False,Filter则会传回不包含match作为子字串的阵列子集。
- compare 选用。指出要使用的字串比较种类的数值。
- compare引数可具有以下的值:
vbBinaryCompare选项,区分大小写;vbTextCompare选项,不区分大小写。默认采用的是vbBinaryCompare选项。
应用示例:
判断某字符串是否在一维数组内存在。
由上图可以看出,采用Filter函数匹配到的是包含A-1
的所有元素。而在实际案例中,可能希望只获得完全匹配的元素。
- WorksheetFunction.Match 方法
傳回項目在陣列中的相對位置,其符合指定順序中的指定值。
WorksheetFunction.Match(Arg1, Arg2, Arg3)
如果 match_type 是 0,相符項目會尋找第一個完全等於 lookup_value 的值。
如果 match_type 是 1,相符項目會找到小於或等於 lookup_value 的最大值。
如果省略 match_type,則會假設其值為 1。
应用示例:
Option Explicit
Option Base 1
Sub test()
Dim data(4) As String, temp As String, flag As Integer
data(1) = "A-1"
data(2) = "A-2"
data(3) = "A-3"
data(4) = "A-11"
temp = "A-1"
On Error Resume Next
flag = WorksheetFunction.Match(temp, data, 0)
If Err.number = 0 Then
MsgBox flag
End If
End Sub
运行上述程序,得到flag的值为1。
参考资料:
[1] Filter 函数(https://ddz.red/m4Yby)
[2] WorksheetFunction.Match 方法(ttps://ddz.red/Vj4pR)
边栏推荐
- 13 【script setup 总结】
- Which is the strongest workflow engine for "Technology Selection"?Chief Architecture Helps You Pick
- "Data Architecture": How can master data management (MDM) help my industry?
- 【API 管理】什么是 API 管理,为什么它很重要?
- LCD模块如何建立联系分析
- 并发的基本概念,操作,容器
- 【数据仓库】什么是 Azure Synapse,它与 Azure Data Bricks 有何不同?
- FPGA中BEL Site Tile FSR SLR分别指什么?
- 武功修炼:招式
- 单例模式基类
猜你喜欢
Basic concepts, structures, and classes of thread pools
shell iterates over folders and outputs
【数据仓库】什么是 Azure Synapse,它与 Azure Data Bricks 有何不同?
12 【其它组合式API】
初识Flink 完整使用 (第一章)
BUUCTF problem solving PWN 】 【 record (4-6 pages continuously updated)
DeepFake换脸诈骗怎么破?让他侧个身
FPGA时钟篇(一) 7系列的时钟结构
2022年固定资产管理系统的概况
用高质量图像标注数据加速AI商业化落地
随机推荐
Relearn bubble sort
JVM探究
10 【异步组件 组合式函数(hooks)】
【企业架构】敏捷与企业架构:战略联盟
绘制温度曲线图;QChart,
将博客搬至CSDN
【API架构】使用 JSON API 的好处
故障分析 | Sql_slave_skip_counter 使用不规范对复制的影响
mysql千万级别数据库优化
【数据仓库】什么是 Azure Synapse,它与 Azure Data Bricks 有何不同?
【数据架构】分布式数据网格作为集中式数据单体的解决方案
1 活动时间与安排
LCD DRM驱动框架分析一
How to break the DeepFake face-changing scam?turn him over
设计分享|基于单片机的从左到右流水灯
【软考 系统架构设计师】系统可靠性分析与设计① 系统可靠性分析
UE4 粒子特效基础学习 (01-将粒子效果挂载到角色身上)
CAD转WPF: 关于CAD图纸文件转换为WPF矢量代码文件(xaml文件)的技巧
【微服务架构】为故障设计微服务架构
【分布式】资源与事务:可观测性的基本二重性