打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【vb新手误区】dim、redim、redim Preserve的使用及区别

dim  // 忽略变量,说数组,用法:
dim a(10)或dim a(10,10)  //a(10)是常用到的,后面是二维数组
dim a() //声明动态数组,声明后可以在过程中使用redim重新定义数组的元素及维数
*如果试图定义dim中已定义维数的数组则全出现错误;如dim a(10)'...  redim a(11)用法是错误的,不但不能增加元素,而且原始值无法改变,也就是说在这里应用redim无意义

redim  //用于过程级声明动态数组变量并分配或重新分配存储空间。也就是说这个是用来与dim a()配合使用的
ReDim 语句通常用于指定或修改“动态”数组的大小,这些数组已用带有空括号的 PrivatePublicDim 语句(没有维数下标)正式声明过。可以重复使用 ReDim 语句更改数组维数和元素数目。如果使用了 Preserve 关键字,就只能调整数组最后维的大小,并且不能改变数组的维数。例如,如果数组只有一维,就可以修改该数组的大小,因为该维是最后的也是仅有的一维。但是,如果数组有两个或更多维,就只能改变末维的大小并保留数组内容。
如redim preserve a()//“不”清空动态数组元素“所有内容”

也可以直接使用redim来声明数组,之后也可再次redim再次声明;例:若存在 dim a(10); 那么就不能使用redim a(15)否则出错
1.调试提示出现了redim出错且,下标越界
Dim a(3)
a(0) = 4 : a(1) = 7 : a(2) = 9 : a(3) = 18
Redim a(4)
For i = 0 To 4
        TracePrint a(i)
Next

2.给动态数组各元素赋值并调试其值,再次重定义数组含Preserve ,最后直接重定义清空
Dim a()
Redim a(4)
For i = 0 To 4
    a(i) = mid("15258", i+1, 1)
    TracePrint "第一次的值:"&a(i)
Next
Redim Preserve a(10)
For i = 0 To 10
    TracePrint "第二次的值:"&a(i)
Next
Redim a(15)
For i = 0 To 15
    TracePrint "第三次的值:"&a(i)
Next

3.另类用法,可以直接重定义数组
Redim a(10)
TracePrint a(11)
Redim a(11)
TracePrint a(11)

水贴一个,高手请无视,给对定义数组不了解的新手;当然我也是新手然后官方帮助框说的很详细;只是被很多人忽视而已
dim  // 忽略变量,说数组,用法:
dim a(10)或dim a(10,10)  //a(10)是常用到的,后面是二维数组
dim a() //声明动态数组,声明后可以在过程中使用redim重新定义数组的元素及维数
*如果试图定义dim中已定义维数的数组则全出现错误;如dim a(10)'...  redim a(11)用法是错误的,不但不能增加元素,而且原始值无法改变,也就是说在这里应用redim无意义

redim  //用于过程级声明动态数组变量并分配或重新分配存储空间。也就是说这个是用来与dim a()配合使用的
ReDim 语句通常用于指定或修改“动态”数组的大小,这些数组已用带有空括号的 PrivatePublicDim 语句(没有维数下标)正式声明过。可以重复使用 ReDim 语句更改数组维数和元素数目。如果使用了 Preserve 关键字,就只能调整数组最后维的大小,并且不能改变数组的维数。例如,如果数组只有一维,就可以修改该数组的大小,因为该维是最后的也是仅有的一维。但是,如果数组有两个或更多维,就只能改变末维的大小并保留数组内容。
如redim preserve a()//“不”清空动态数组元素“所有内容”

也可以直接使用redim来声明数组,之后也可再次redim再次声明;例:若存在 dim a(10); 那么就不能使用redim a(15)否则出错
1.调试提示出现了redim出错且,下标越界
Dim a(3)
a(0) = 4 : a(1) = 7 : a(2) = 9 : a(3) = 18
Redim a(4)
For i = 0 To 4
        TracePrint a(i)
Next

2.给动态数组各元素赋值并调试其值,再次重定义数组含Preserve ,最后直接重定义清空
Dim a()
Redim a(4)
For i = 0 To 4
    a(i) = mid("15258", i+1, 1)
    TracePrint "第一次的值:"&a(i)
Next
Redim Preserve a(10)
For i = 0 To 10
    TracePrint "第二次的值:"&a(i)
Next
Redim a(15)
For i = 0 To 15
    TracePrint "第三次的值:"&a(i)
Next

3.另类用法,可以直接重定义数组
Redim a(10)
TracePrint a(11)
Redim a(11)
TracePrint a(11)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
带您走进VBA数组3
【20180907】-VBA中数组、集合和字典(二)——对数组变量的赋值
VB编程基础教程10–动态数组 | 异次元软件世界
VBA数组 | 从入门到精通(3)- 数组大小与维度转换
第8章 数组
第五章 VB 中的数组
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服