Excel宏以获取数组字符串的所有组合
我试图创建一个宏函数来生成一个字符串,该字符串包含数组字符串的所有组合,然后检查另一个字符串是否是这些组合的一部分 示例:Excel宏以获取数组字符串的所有组合,excel,excel-formula,vba,Excel,Excel Formula,Vba,我试图创建一个宏函数来生成一个字符串,该字符串包含数组字符串的所有组合,然后检查另一个字符串是否是这些组合的一部分 示例: 在A1中,我有a;BCDe,在B1中我有b;DA.Ce。我正在寻找一个函数放入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 非常感谢您的帮助。这可能是一个起点 Fu
在
A1
中,我有a;BCDe
,在B1
中我有b;DA.Ce
。我正在寻找一个函数放入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
非常感谢您的帮助。这可能是一个起点
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
函数将组合(测试作为范围,基本作为范围)设置为布尔值
Dim testArr()作为字符串,baseArr()作为字符串,i作为整数
testArr=Split(在您的示例中测试“;”//B1
在您的示例中,baseArr=Split(base,“;”//Al
如果UBound(testArr)UBound(baseArr),则
IsCombination=False
退出功能
其他的
对于i=0到UBound(testArr)
如果InStr(Join(baseArr),testArr(i))=0,则
IsCombination=False
退出功能
如果结束
接下来我
如果结束
IsCombination=True
端函数
首先检查两个字符串的长度是否相同。如果不是,则它们不能是组合匹配
然后检查每个字符是否在另一个字符串数组中。如果每个角色都找到了匹配项,那么它就是一个组合