我正在尝试在 VBA 中编写一个 Excel 函数来检查字符串是否包含某些条件。
如果我以冗长的方式编写它,我可以让它工作:
If code Like "*ABB*" Or code Like "*ABC* Or code Like "*ABE*" Then ...
但我有很多标准(现在有 15 个,但将来可能会增加),所以希望我可以将它们写在数组中,例如
Criteria = Array("*ABB*","*ABC*","*ABE*")
我只是在为下一阶段而苦苦挣扎;某种方法来检查是否code
是 是 的一部分Criteria
.
我一直在网上搜索,找不到类似的东西。
我今天遇到了类似的问题,并编写了一个简单的函数来提供一些句法糖 https://en.wikipedia.org/wiki/Syntactic_sugar一种测试一系列相似表达式的乏味方法。
If LikeAny(code, "*ABB*", "*ABC*", "*ABE*") Then...
要使用此功能,只需将以下代码添加到标准模块中:
'---------------------------------------------------------------------------------------
' Procedure : LikeAny
' Author : Adam Waller
' Date : 3/14/2023
' Purpose : Returns true if strTest is LIKE any of the array of expressions.
' : (Short ciruits to first matching expression)
'---------------------------------------------------------------------------------------
'
Public Function LikeAny(strTest As String, ParamArray varLikeThis()) As Boolean
Dim lngCnt As Long
For lngCnt = 0 To UBound(varLikeThis)
If strTest Like varLikeThis(lngCnt) Then
LikeAny = True
Exit For
End If
Next lngCnt
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)