VBSCript错误为“需要非负数”

时间:2012-12-28 07:34:46

标签: excel-vba vbscript vba excel

我编写了下面的代码来删除ArrayList对象中的一些元素,具体取决于一维数组中某些元素的匹配。但是将错误作为Non-negetive number required加到行ArrayListTaskDetails.RemoveRange RemovePosition, 4。但我所知道的是IndexOf()在找到匹配时返回0 - based索引,而-1表示不匹配。那么为什么会出现错误?

代码:

For IndexSearch = Lbound(VMHArray) To Ubound(VMHArray)
    Do Until ArrayListTaskDetails.IndexOf(VMHArray(IndexSearch), 0) <> -1
        RemovePosition = ArrayListTaskDetails.IndexOf(VMHArray(IndexSearch), 0)
        ArrayListTaskDetails.RemoveRange RemovePosition, 4
    Loop
Next

1 个答案:

答案 0 :(得分:1)

好吧,我的评论中的“没有意义”是错误的;我误读了这个例子。

以下是发生的事情:Do Until X表示评估X,如果结果是 false ,则执行循环体。因此,IndexOf显然返回-1,“Until”条件的计算结果为false,循环体执行,RemovePosition等于-1。这解释了错误。