2014-04-14 44 views
0

我想REDIM在QTP/VB腳本的數組,但我不斷收到錯誤:預期語句。使用ReDim數組語法完整性檢查 - 預期語句錯誤

我一直在代碼百倍的最後幾個小時,我只是沒有看到缺什麼,也沒有人在這裏辦公似乎知道缺什麼。

因此,這是在這一點上對我來說只是一個全面的檢查,並獲得一套新的眼睛上的問題。

這裏是代碼的錯誤信息行:在主題

ReDim strTempArray(LBound(AryVar) To (UBound(AryVar) - 1)) 

或者,我可以這樣說,我已經嘗試了許多變化:

ReDim strTempArray(0 To AryVar.Length - 1) 

但他們都有一個共同點,它們都給出了相同的毫無意義的錯誤: 對這一行代碼的預期陳述。

好吧,也許這件事情與子的休息,所以這裏是充滿子碼。 基本上這是一個子叫RemoveArrayElement的一部分:

Public Sub RemoveArrayElement(AryVar(), intIndexToRemove) 
strTempArray() 
lngX = 0 'As Long 
lngDestinationIndex = 0 'As Long 

    ReDim strTempArray(LBound(AryVar) To (UBound(AryVar) - 1)) 
    'ReDim strTempArray(0 To AryVar.Length - 1) 
    lngDestinationIndex = 0 

    For lngX = LBound(AryVar) To UBound(AryVar) 
     If lngX <> intIndexToRemove Then 
      strTempArray(lngDestinationIndex) = AryVar(lngX) 
      lngDestinationIndex = lngDestinationIndex + 1 
     End If 
    Next 

    AryVar = strTempArray 
'End If 
End Sub 

我還要補充一點,我沒有包括期權在文件的開頭明確。

評論指出,一個行是給錯誤確實讓錯誤消失,這似乎意味着對我的錯誤確實是在該行的代碼,而不是一些其他地方。

那麼我錯過了什麼?

在此先感謝!

回答

3

VBScript數組嚴格爲零,因此指定範圍(..到..)是沒有意義的,並且不支持(與其他Basic方言相反)。只需使用ReDim Array(UBound)並小心您的索引。

+0

這做到了。我想我在VB6工作5年後仍然習慣它。謝謝! –

+0

不會工作得更好:ReDim保留AryVar(數組(UBound)-1)它將保留原始數組,但將其大小調整爲新索引陣容 –