VBS动态数组的问题

动态数组的问题,为什么不能这样用。

i=0
dim MyArray()
do
a=inputbox ("循环直到输入4为止")
MyArray(i)=a
i=i+1
loop until a="4"
ReDim Preserve MyArray(i)
msgbox Array(i)

可能我理解的动态数组不对?
把不符合要求的数据存放在动态数组里,每次运行脚本不合格的数量都不一定,想用动态数组存放这些数据。
必须先redim然后才能给数组赋值对吧,
这段什么意思:
For i = 0 To UBound(MyArray)
nStr = nStr & MyArray(i) & ","
Next
MsgBox nStr

i = 0: nStr = ""
Dim MyArray()
Do
a = InputBox("循环直到输入4为止")
ReDim Preserve MyArray(i)
MyArray(i) = a
i = i + 1
Loop Until a = "4"
For i = 0 To UBound(MyArray)
nStr = nStr & MyArray(i) & ","
Next
MsgBox nStr

补充:--------------------------------------
不一定要 redim 后才能给数组赋值
Dim MyArray(5)
MyArray(0)=455
MyArray(1)=500
.......
因为这时数组中已有元素 0 到 5 号

下面的用法就必须 redim 后才能给数组赋值
dim MyArray()'定义动态数组,此时数组中一个元素都没有
ReDim Preserve MyArray(3)'重定义数组的元素 为 0 到 3 号
MyArray(0)=455
MyArray(1)=500
MyArray(2)=2
MyArray(3)=78

For i = 0 To UBound(MyArray)
nStr = nStr & MyArray(i) & ","
Next
表示:将数组的所有元素用字符串形式连在一起,用“,”分隔,便于显示。
UBound(MyArray) 表示数组元素的最大序号。参见:

参考资料:http://zhidao.baidu.com/question/99837477.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-05
呵呵,没看出来你是怎么理解动态数组的,反正不对。给你改了改,不知是否是你想要的效果。
================
i=0
dim MyArray()
do
a=inputbox ("循环直到输入4为止")
if a="4" then exit do
redim preserve myarray(i)
myarray(i)=a
i=i+1
loop
msgbox join(myarray,",")
第2个回答  2009-06-06
i=0
你的程序改为下面这样就行了

dim MyArray()
do
ReDim Preserve MyArray(i)
a=inputbox ("循环直到输入4为止")
MyArray(i)=a
i=i+1
loop until a="4"

msgbox Array(i)

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网