我正在尝试在QTP / VB脚本中重新编写数组,但我不断收到错误:预期声明。
在过去的几个小时里,我已经完成了一百次代码,我只是没有看到缺少的东西,办公室的任何人似乎都不知道缺少什么。
所以这对我来说只是一个理智的检查,并且对这个问题有了新的认识。
以下是包含错误消息的代码行:
ReDim strTempArray(LBound(AryVar) To (UBound(AryVar) - 1))
或者我可以这样说,我在主题上尝试了很多变化:
ReDim strTempArray(0 To AryVar.Length - 1)
但它们都有一个共同点,它们都会产生同样无意义的错误: 关于那一行代码的预期陈述。
好吧,也许它与sub的其余部分有关,所以这里是完整的子代码。 基本上它是Sub的一部分,名为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
我还应该补充一点,我确实在文件开头包含了Option Explicit。
注释掉一条给出错误的行确实会使错误消失,这似乎意味着错误确实存在于那行代码而不是其他地方。
那么我错过了什么?
提前致谢!
答案 0 :(得分:3)
VBScript 数组严格从零开始,因此指定范围(.. To ..)没有任何意义,也不支持(与其他Basic方言相比)。只需使用ReDim Array(UBound)
并小心索引。