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