VBS动态数组的问题

动态数组的问题,为什么不能这样用。i=0dimMyArray()doa=inputbox("循环直到输入4为止")MyArray(i)=ai=i+1loopuntila=... 动态数组的问题,为什么不能这样用。

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
展开
 我来答
百度网友4b636fa
推荐于2017-11-21 · TA获得超过1237个赞
知道小有建树答主
回答量:866
采纳率:100%
帮助的人:1384万
展开全部
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

ARTERIOSCLEROS
2009-06-05 · TA获得超过4183个赞
知道大有可为答主
回答量:1672
采纳率:0%
帮助的人:2415万
展开全部
呵呵,没看出来你是怎么理解动态数袭滑组的,反正不对。给你改了改,不知是否是你想要的效果。
====丛困============
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,",")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Luma
2009-06-06 · TA获得超过9828个赞
知道大有可为答主
回答量:1647
采纳率:50%
帮助的人:1107万
展开全部
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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式