excel vba与字符串数组有关的三个函数

网友投稿 435 2022-12-03

excel vba与字符串数组有关的三个函数

excel vba与字符串数组有关的三个函数

Split函数返回一个下标从零开始的一维数组,它包含指定数目的子字符串。Split(字符串[, 分隔符[, 要返回的子字符串数量[,比较方式]]])后三项可选,默认:分隔符为空格,返回全部子字符串,用Option Compare语句中的设置值执行比较。下面是将1-12转化为一月-十二月的自定义函数的例子。Function Num2ch(ByVal n As Integer) As StringDim ArrArr = Split(",一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月", ",")Num2ch = Arr(n)End Function和Array函数相比,用Split的好处在于生成的数组是字符型的,写法上也更简洁。注意“一月”前的逗号,这是因为Split生成的数组下标是从0开始的,且不受Option Base句的影响。

Join函数返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。Join(源数组[,分隔符])默认:分隔符为空格当将分隔符设为空串(””)时,会返回一个各数组元素会直接相连的字符串。该函数是Split函数的反函数,它是将数组转化为字符串。Join和Split相配合,可用于扩充控件TAG属性的传递数量;在不定参数的传递时,可使代码看起来更简洁。下面只是它们配合的示例,并不是这儿真有必要这样做:Sub aMain()Dim arr(1 To 2), s$arr(1) = 1: arr(2) = 2s = Join(arr, ",")Debug.Print Myadd(s)End SubFunction Myadd(ByVal s As String)Dim arr, xarr = Split(s, ",")For Each x In arrMyadd = Myadd + Val(x)Next xEnd Function

Filter函数返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个字符串数组的子集。Filter(源数组,要搜索的字符串[,返回子串包含还是不包含要搜索字符串[,比较方式]])如果在源数组中没有发现与要搜索的字符串相匹配的值,Filter返回一个空数组。如果源数组是Null或不是一个一维数组,则产生错误。注意是“包含”要搜索的字符串,而不是“等于”要搜索的字符串。这意味着,如果一数组元素为字符串“AB”,用“A”、“B”、“AB”中的任何一个去搜索(上面第三个参数为默认值True),都会作为新的数组的元素被返回。但这并不影响你创造成“包含”等同于“等于”的条件,或者数据本身就符合这一要求的条件。在“包含”等同于“等于”的数组中,我们可以用下面的办法来判断一个字符串是否属于某个数组。If UBound(Arr) = UBound(Filter(Arr, "要找的字符串", False)) Then ‘说明在数组Arr中找不到

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何计算两列数字之和?
下一篇:Excle函数中的最大值和最小值如何用?
相关文章