我很难弄清楚这段代码应该是什么的错误。我想知道是否有人可以帮助我。任何想法都会非常感激,我在VBA中很新。
我的代码是:
Dim table() as Variant: table = Array(Array(0,0,0))
Dim aux() as Variant: aux = Array(0,0,0)
If table(0) = aux then
End If
代码甚至不执行,Excel在If行中抛出不匹配异常。我已经以各种可能的方式“解释”了代码并且没有成功地使代码工作(当然代码并不像这个那么简单,但是这个代码什么都不执行也不执行...)
提前感谢您的时间,
答案 0 :(得分:2)
如果你想比较两个一维数组的相等性,如你提供的示例代码所示,那么你需要使用Join函数,如下所示:
Sub tst()
Dim table() As Variant: table = Array(Array(0, 0, 0))
Dim aux() As Variant: aux = Array(0, 0, 0)
If Join(table(0), ",") = Join(aux, ",") Then
MsgBox "The same"
Else
MsgBox "Not the same"
End If
End Sub
注意,请确保正在使用的Join分隔符不在任何正在测试的数组的任何元素中。 John Coleman提出了一个很好的观点,即当使用逗号分隔符时,这可能会对(0, "0,0")
数组产生误报。如提供的答案所示。