|
楼主 |
发表于 2021-11-22 11:18
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
查找替换篇
Public Function 查找(ByVal 内容arr, [ByVal 所有结果 As Boolean = False], [ByVal 查找方向 As 查找 = 全部查找], [ByVal 行 As Long = 1], [ByVal 列 As Long = 1])
类似ExcelVBA里的Fnd方法,返回值为二维假数组,数组存行列坐标,
例如:arr(1,1)找到的第一个内容的行索引 arr(2,1)找到的第一个内容的列索引
arr(1,2)找到的第二个内容的行索引 arr(2,2)找到的第二个内容的列索引
arr(1,3)找到的第三个内容的行索引 arr(2,3)找到的第三个内容的列索引
第1参数:可以是数字或字符串也可以是(数字,字符串)数组
还可以使用like方法的通配符 例如:"*da*"查找包含"da"的内容
还可以是比较符号 例如:">100"查找大于100 、"<10"查找小于10、">=100"查找大于等于100、"<>"查找不等于空
还可以查找不符合条件的(vba解释就是 not like) 写法例如:"<>*da*"查找不包含"da"的内容
如果传递不是数组 例如 ">1",则返回参数的格式是一个假二维数组,格式像这样 array(array()) 一个数组套一个坐标数组
如果传递了数组 例如 array(">1","*da*"),则返回参数的格式是一个假二维数组,
格式像这样 array(array(),array())一个数组套两个坐标数组
假数组取值应该这样:
arr(1)(1,1)找到的第一个元素进行查找的第一个内容的行索引 arr(1)(2,1)找到的第一个元素进行查找的第一个内容的列索引
第2参数:true返回所有结果,false只返回第一个结果
设置成false可以利用查找判断数据里是否含有指定内容 例如 If IsArray(da.查找("", False)) Then MsgBox "有空值"
第3参数:枚举值,用来设置查找的方向
Public Enum 查找
全部查找 = 1
向下查找 = 2
向上查找 = 3
向右查找 = 4
向左查找 = 5
End Enum
第4,5参数:分别是行列索引,用来设置查找的起始位置,如果第3参数=全部查找,则第4,5参数无效
Public Function 查找替换(ByVal 坐标arr, ByVal 内容arr) As DataAutomation
配合查找方法,将查找到的值进行替换
第1参数:查找方法返回的坐标arr
第2参数:用来替换的值,
注意:查找方法的第一参数是数组,返回的坐标arr是一个假二维数组
这时第2参数的内容arr也要是一个数组,例如:
坐标格式=array(array(),array()) 内容arr要与之对应的=array(替换内容1,替换内容2)
Public Function 查找坐标取值(ByVal 坐标arr)
配合查找方法,将查找到的值取出
第1参数:查找方法返回的坐标arr
返回值是与坐标arr相同格式的数据
Public Function 坐标取值(ByVal 坐标arr)
与查找坐标取值不同的是,坐标arr是只能是一个坐标数组,不能是假数组
此方法用来人为构造数组,批量提取指定位置的值更加方便
Public Function 坐标替换(ByVal 坐标arr As Variant, ByVal 内容arr As Variant) As DataAutomation
与查找坐标取值不同的是,坐标arr是只能是一个坐标数组,不能是假数组
此方法用来人为构造数组,进行批量覆盖指定位置的值更加方便
|
|