Vba 比较基本字符串的指数复杂性

Vba 比较基本字符串的指数复杂性,vba,structure,Vba,Structure,我可能在问一个愚蠢的问题,但我在自学VBA,我只是被难住了,我甚至不知道我可以用什么术语来查找解决方案 我正在编写一个代码,将三个变量与其他三个变量进行比较,然后我想显示哪些变量已更改 所以如果x=a,但是y=b,z=c,那么输出应该是b/c 我已经制定出一个代码,工作良好 Dim Str As String If X <> A Then If Y <> B Then If Z <> C Then

我可能在问一个愚蠢的问题,但我在自学VBA,我只是被难住了,我甚至不知道我可以用什么术语来查找解决方案

我正在编写一个代码,将三个变量与其他三个变量进行比较,然后我想显示哪些变量已更改

所以如果x=a,但是y=b,z=c,那么输出应该是b/c

我已经制定出一个代码,工作良好

    Dim Str As String
    If X <> A Then
        If Y <> B Then
            If Z <> C Then
                Str = "a/b/c"
            Else
                Str = "a/b"
            End If
        ElseIf Z <> C Then
            Str = "a/c"
        Else
            Str = "a"
        End If
    ElseIf Y <> B Then
            If Z <> C Then
                Str = "b/c"
            Else
                Str = "b"
            End If
    Else
        Str = "c"
    End If
Dim Str作为字符串
如果Xα那么
如果是B那么
如果Z C那么
Str=“a/b/c”
其他的
Str=“a/b”
如果结束
埃尔塞夫Z C那么
Str=“应付账款”
其他的
Str=“a”
如果结束
如果是的话
如果Z C那么
Str=“b/c”
其他的
Str=“b”
如果结束
其他的
Str=“c”
如果结束
但是随着我增加变量的数量,这会变得非常复杂

如果有人能帮我找到一种没有指数复杂性的更简单的方法,我将不胜感激


非常感谢大家

您可以将这两个字符串放在两个数组中,然后使用
FOR…NEXT
构造来循环两个数组。您可以使用
UBound(arValues)
动态查找数组中的项数。

祝你好运

你需要独立地测试每一个变量对——而不是将它们连接在一个巨大的
If
构造树中

例如:

str = "" 'Start with blank string. Append as required.
If x <> a Then str = str & "a/"
If y <> b Then str = str & "b/"
If z <> c Then str = str & "c/"

'Remove the extra / at the end
If Right(str, 1) = "/" Then str = Left(str, Len(str - 1))
str=”“'以空白字符串开头。根据需要追加。
如果x a那么str=str&“a/”
如果y b,则str=str&“b/”
如果z c那么str=str&“c/”
'删除末尾的多余/多余部分
如果Right(str,1)=“/”那么str=Left(str,Len(str-1))