我正在尝试创建一个宏函数来生成一个字符串,该字符串包含数组字符串的所有组合,然后检查另一个字符串是否属于这些组合。
例:
在A1
中,我有a;b;c;d;e
,在B1
我有b;d;a;c;e
。我正在寻找一个函数来放入C1
,以便它查找A1
的所有组合并验证B1
。如果其中一个B1
组合中存在A1
字符串,那么C1
应该通过,否则它应该失败。
示例A1
的可能组合:
a;b;c;d;e
b;c;d;e;a
c;d;e;a;b
d;e;a;b;c
e;a;b;c;d
b;a;c;e;d
etc
感谢您的帮助。
答案 0 :(得分:0)
这可能是一个起点。
Function IsCombination(test As Range, base As Range) As Boolean
Dim testArr() As String, baseArr() As String, i As Integer
testArr = Split(test, ";") //B1 in your example
baseArr = Split(base, ";") //Al in your example
If UBound(testArr) <> UBound(baseArr) Then
IsCombination = False
Exit Function
Else
For i = 0 To UBound(testArr)
If InStr(Join(baseArr), testArr(i)) = 0 Then
IsCombination = False
Exit Function
End If
Next i
End If
IsCombination = True
End Function
首先检查两个字符串是否长度相同。如果没有,则它们不能组合匹配。
然后检查每个字符以查看它是否在另一个字符串数组中。如果每个角色都找到匹配,那么它就是一个组合。