2016-02-09 22 views
1
Sub A() 
    Dim arr(4) 
    arr = Array(&H0, &H2, &H4, &H6, &H8) 
    Wscript.echo arr(1) 
End Sub 

上面的vbs函數給出了錯誤。但是,當我刪除聲明時,代碼工作正常。在vbscript中聲明和定義數組時出錯

Sub A() 
    arr = Array(&H0, &H2, &H4, &H6, &H8) 
    Wscript.echo arr(1) 
End Sub 

任何人都可以解釋爲什麼嗎?

+1

這是一個經典的問題,程序員碰上了。 @ Ekkehard.Horner下面的解決方案是我會推薦的。始終使用OPTION EXPLICIT來強化良好的編程習慣。 – CoveGeek

回答

3

Dim arr(4)聲明/變暗初始化固定(優化的,非調整大小)5(空)元素的數組。 arr = Array(...)嘗試用動態(可調整大小)的數組重新分配/覆蓋此變量。這是不允許的。

使用Option Explicit

Dim arr ' just a variant; make known the name 
arr = Array(...) ' replace with dynamic array