我寫了下面的代碼,根據一維數組中某些元素的匹配從ArrayList
對象中刪除了一些元素。但得到一個錯誤爲Non-negetive number required
行ArrayListTaskDetails.RemoveRange RemovePosition, 4
。但我知道的是IndexOf()
返回0 - based
索引時發現匹配和-1
爲不匹配。那麼爲什麼錯誤即將到來?VBSCript錯誤爲「需要非需要的數字」
代碼:
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
這是VBA還是vbscript?無論如何,我認爲你想把'until'改爲'While'或將'<>'改成'='。最後,你想完成什麼?代碼看起來相當困惑。您正在查詢列表以查找索引IndexSearch處的項目的索引。這沒有道理;這就像問「位於大街1號的建築物的地址是什麼?」。 – phoog
@phoog我用'直到'的意圖,因爲任何數組元素可以不止一次出現在ArrayList中。但是根據IndexOf()的'MSDN'定義,它會返回第一個找到的'0'索引,'-1'返回不匹配,那麼除了'-1'這樣的'negetive number'怎麼會出現?任何想法? Id使用'while'後,我不能刪除ArrayList中存在的數組元素,只有一個將被刪除,我相信。糾正我如果我錯了! –
@phoog我同意你的觀點,但我所做的錯誤是錯誤地放置了'<>'而不是'='。我剛剛糾正了它。現在希望它會起作用。 –