2014-11-01 108 views
0

我想创建一个宏函数来生成一个具有数组字符串的所有组合的字符串,然后检查另一个字符串,如果它是这些组合的一部分。Excel宏以获得数组字符串的所有组合

示例:
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

这可能是一个起点。

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 

首先检查两个字符串的长度是否相同。如果不是那么他们不能组合比赛。

然后检查每个字符是否在另一个字符串数组中。如果每个角色都找到了匹配,那么它就是一个组合。

相关问题