繁体   English   中英

下标超出范围错误(带数组)

[英]Subscript out of range error (with array)

我在 VBS 中有这段代码:

Dim Arg()
Set objArgs = WScript.Arguments
for i=0 to objArgs.Count
  Arg(i) = Replace(objArgs(i),"\n",vbNewLine,1,-1,1)
... (yes, the for has a Next at the end)

(示例参数: "hello\nworld" "test" 0 64

但是当我运行它时,它会抛出一个错误: The subscript is out of range (第 4 行,第 3 列)。

我是否错误地使用了数组,或者是 for 中的问题,还是出了什么问题?

VBScript 中的数组是基于零序数的,这意味着如果数组中有十个元素,它们的编号将从零到九。

因此,当使用Count时,它将返回元素的数量而不是它们在数组中的位置,因此您需要从Count中减去 1,否则 VBScript 将报告“下标超出范围”错误,因为数组中没有第 11 个元素进行迭代至。

正如评论中所建议的,你想这样做;

For i = 0 To objArgs.Count - 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM