Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel宏以获取数组字符串的所有组合_Excel_Excel Formula_Vba - Fatal编程技术网

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
端函数
首先检查两个字符串的长度是否相同。如果不是,则它们不能是组合匹配

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