ReDim 语句
来源:互联网 发布:有哪些好的数据库应用 编辑:程序博客网 时间:2024/05/22 00:42
ReDim 语句
ReDim 语句示例
该示例使用 ReDim 语句为动态数组变量分配和重分配存储空间。假设 Option Base是 1。
Dim MyArray() As Integer '
声明动态数组。Redim MyArray(5)
'
分配5
个元素。For I = 1 To 5 '
循环5
次。MyArray(I) = I '
初始化数组。Next I
下一条语句重定义该数组的大小,并清除其中的元素。
Redim MyArray(10)
'
大小重定为10
个元素。For I = 1 To 10 '
循环10
次。MyArray(I) = I '
初始化数组。Next I
下面的语句重定义该数组的大小,但没有清除其中的元素。
Redim Preserve MyArray(15)
'
大小重定为15
个元素。
请参阅 示例 特性
在过程级别中使用,用于为动态数组变量重新分配存储空间。
语法
ReDim [Preserve] varname(subscripts)[Astype] [, varname(subscripts)[Astype]] . . .
ReDim 语句的语法包括以下几个部分:
说明
ReDim 语句用来定义或重定义原来已经用带空圆括号(没有维数下标)的 Private、Public 或 Dim 语句声明过的动态数组的大小。
可以使用 ReDim 语句反复地改变数组的元素以及维数的数目,但是不能在将一个数组定义为某种数据类型之后,再使用ReDim 将该数组改为其它数据类型,除非是Variant 所包含的数组。如果该数组确实是包含在某个Variant 中,且没有使用 Preserve 关键字,则可以使用 Astype 子句来改变其元素的类型,但在使用了此关键字的情况下,是不允许改变任何数据类型的。
如果使用了 Preserve 关键字,就只能重定义数组最末维的大小,且根本不能改变维数的数目。例如,如果数组就是一维的,则可以重定义该维的大小,因为它是最末维,也是仅有的一维。不过,如果数组是二维或更多维时,则只有改变其最末维才能同时仍保留数组中的内容。下面的示例介绍了如何在为已有的动态数组增加其最末维大小的同时而不清除其中所含的任何数据。
ReDim X(10, 10, 10). . .ReDim Preserve X(10, 10, 15)
同样地,在使用 Preserve 时,只能通过改变上界来改变数组的大小;改变下界则会导致错误。
如果将数组改小,则被删除的元素中的数据就会丢失。如果按地址将数组传递给某个过程,那么不要在该过程内重定义该数组的各维的大小。
在初始化变量时,数值变量被初始化为 0,变长的字符串被初始化为一个零长度的字符串 (""),而定长的字符串则用 0 填充。Variant 变量被初始化为Empty。用户自定义类型的变量的每个元素作为各自独立的变量进行初始化。在使用引用对象的变量之前,必须使用Set 语句将一个已有的对象赋给该变量。在被赋值之前,所声明的对象变量有一个特定值Nothing,这个值表示该变量没有指向任何对象的实例。
小心 如果 ReDim 语句所使用的变量在模块级别或过程级别不存在,则该语句就相当于一个声明语句。如果此后在一个更广的范围内又创建了同名的变量,即使使用了Option Explicit,ReDim 也将使用后声明的这个变量,且不会导致编译错误。为了避免这种冲突,就不应把ReDim 作为声明语句使用,而只应作为重定义数组大小的语句。
注意 要改变 Variant 所包含的数组的大小,必须在试图改变其数组大小之前显式声明该Variant 变量。
- ReDim 语句
- ReDim 语句
- redim语句
- ReDim, split
- [VB.NET]VB REDIM
- Dim 和 Redim
- VBA - Redim an Array
- c#自建Redim动态数组
- AITD开发笔记:VB中数组的Dim与Redim
- REDIM陷阱(很多人都看过了吧)
- 大量数据进行数组操作的Redim Preserve替代方法
- java 实现重定义数组类似于VB的ReDim
- 记录集,换成数组/rs.getRows()/redim Preserve 保留原有数据
- 语句
- 语句
- 语句
- 语句
- 语句
- UML2.0类之间的关系
- n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字
- android UI进阶之自定义组合控件
- eclipse 错误
- 浅议DAS、NAS、SAN区别
- ReDim 语句
- 冒泡排序
- Synchronize与JAVA内存模型(转)
- 测试方法的确定-人工检查
- Eclipse中高亮显示相同的变量
- 系统集成工程师--知识储备
- Jersey in Spring usage quick guide
- 一个自定义消息的例子
- Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库