vb 数组 下标越界

来源:百度知道 编辑:UC知道 时间:2024/05/12 13:52:49
dim i as integer,m,s as string
dim a$()
s=text1.text
for i=1 to len(s)
m=mid(s,i,1)
a(i)=m
next

运行时下标越界,是怎么回事啊?

dim i as integer,m,s as string
dim a$()

s=text1.text
if len(s)>0 then
redim a(1 to len(s))

for i=1 to len(s)
m=mid(s,i,1)
a(i)=m
next
end if

使用redim关键字设置动态数组大小
加入
redim arr(1 to year + 1)
arr(1) = corpus / 12 + corpus * rate

动态数组的用法:
组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。

动态数组就可以在任何时候改变大小。在 Visual Basic 中,动态数组最灵活、最方便,有助于有效管理内存。例如,可短时间使用一个大数组,然后,在不使用这个数组时,将内存空间释放给系统。

如果不用动态数组,就要声明一个数组,它的大小尽可能达到最大,然后再抹去那些不必要的元素。但是,如果过度使用这种方法,会导致内存的操作环境变慢。

要创建动态数组,请按照以下步骤执行:

(如果希望数组为公用数组,则)用 Public 语句声明数组,或者,(如果希望数组为模块级,则)在模块级用 Dim 语句声明数组,或者(如果希望数组为局部数组,则)在过程中用 Static 或 Dim 语句声明数组。给数组附以一个空维数表,这样就将数组声明为动态数组。
Dim DynArray ()

用 ReDim 语句分配实际的元素个数。
ReDim DynArray (X + 1)

ReDim 语句只能出现在过程中。与 Dim 语句、Static 语句不同,ReDim 语句是一个可执行语句,由于这一语句,应用程序在运行时执行一个操作。

ReDim 语句支持这样的语法,它与固定数组中使用的语法相同。对于每一维数,每个 ReDim 语句都能改变元