在VBScript中初始化数组时没有指定其大小(下标超出范围)时出错

时间:2016-05-05 11:38:35

标签: arrays vbscript

我只是尝试在VBScript中初始化一个数组而没有指定它的大小,而且我得到错误:"下标超出范围"。

Option Explicit 
dim arr()
arr(0)=2
Call MsgBox("arr: " & arr(0)) 'It prints 2

当我将第二行编辑为dim arr(1)时,它可以正常工作。

我想知道这是一个错误。或者我错过了什么?

我是VBScript的新手

2 个答案:

答案 0 :(得分:2)

当你执行dim arr()时,它意味着它没有任何大小。因此,要使用它,首先需要确保在声明dim arr(1)或使用ReDim arry(1)时指定尺寸。

<强>基本

http://www.w3schools.com/asp/vbscript_variables.asp

https://msdn.microsoft.com/en-us/library/t7zd6etz(v=vs.84).aspx

答案 1 :(得分:2)

@PankajJaju已经对你的基本问题给出了一个很好的答案。

如果你的目的是拥有一个可以根据需要动态扩展的数组,你可能想要使用array list

Option Explicit
dim arr

Set arr = CreateObject("System.Collections.ArrayList")
arr.add 2

msgbox "arr: " & arr(0) 'it *does* print 2!

除了能够动态扩展外,数组列表还有一个很好的排序方法。我上面给出的链接显示了如何在VBScript中使用它们。

(另外 - 请注意,您可以在不使用关键字Call的情况下调用subs - 但是如果您使用sub而不是函数执行此操作,则需要按照我使用{的方式删除参数旁边的括号{1}})。