前言
VB的数组学习笔记
一维数组
静态数组的声明
定义数组的个数
一次定义一个数组
一次定义多个数组
指定数据类型的方式
不指定数据类型
直接指定数据类型
通过类型标识符定义数据类型
指定数组长度的方式
指定开始索引和结束索引
仅指定结束索引
统一指定所有区间的最小值
- 使用
Option Base
关键字指定的下标起始值,如果定义多维数组,对每维数组都有效
1 2
| Option Base 最小索引 Dim 数组名(索引最大值)
|
动态数组的声明
- 声明数组时(
Dim
)动态数组未分配存储空间,不能引用
- 重新声明数组后(
ReDim
),才能确定其维数和大小,此时才分配存储空间
- 可以多次重新声明数组,多次改变动态数组的长度和维数,但是不能改变数组的数据类型
指定数据类型的方式
不指定数据类型
1 2 3 4 5 6 7 8 9
| ' 定义动态数组 Dim 数组名()
' 定义/改变数组的长度 ReDim 数组名(索引最小值 To 索引最大值) ReDim 数组名(索引最大值)
' 定义/改变数组的维数 ReDim 数组名(一维数组的下标定义, 二位数组的下标定义, ...)
|
直接指定数据类型
1 2 3 4 5 6 7 8 9
| ' 定义动态数组 Dim 数组名() As 数据类型
' 定义/改变数组的长度 ReDim 数组名(索引最小值 To 索引最大值) As 数据类型 ReDim 数组名(索引最大值) As 数据类型
' 定义/改变数组的维数 ReDim 数组名(一维数组的下标定义, 二位数组的下标定义, ...) As 数据类型
|
通过类型标识符定义数据类型
1 2 3 4 5 6 7 8 9
| ' 定义动态数组 Dim 数组名类型标识符()
' 定义/改变数组的长度 ReDim 数组名类型标识符(索引最小值 To 索引最大值) ReDim 数组名类型标识符(索引最大值)
' 定义/改变数组的维数 ReDim 数组名类型标识符(一维数组的下标定义, 二位数组的下标定义, ...)
|
关于数据的保存
- 重新声明数组后(
ReDim
),所有的数据都会被清空,如果不希望数据被清空,可以使用关键字Preserve
1 2 3 4 5 6
| ' 定义动态数组 Dim 数组名()
' 定义/改变数组的长度 ReDim 数组名(索引最小值 To 索引最大值) ReDim 数组名(索引最大值)
|
关于维数的修改
- 重新声明数组时(
ReDim
),如果修改的原数组是多维数组,只能修改最后一维的下标索引最小值,并且不能修改数组的维数
1 2 3 4 5
| ' 定义动态数组 Dim 数组名(一维数组的下标定义, 二位数组的下标定义)
' 定义/改变数组的维数 ReDim 数组名(一维数组的下标定义, 二位数组的下标定义)
|
数组中元素的赋值
为指定下标的元素赋值
通过Array函数为所有元素赋值
- 通过
Array()
函数,可以在编译阶段为数组赋值,因此无需占用运行时间,可以提高程序执行的效率
1
| 数组名 = Array(值1, 值2, ...)
|
为动态数组赋值
1
| 数组名() = Array(值1, 值2, ...)
|
通过字符串分割为所有元素赋值
数组中元素值的获取
多维数组
数组的声明
1
| Dim 数组名(一维数组的下标定义, 二位数组的下标定义, ...)
|
数组中元素的赋值
1
| 数组名(一维数组的下标, 二维数组的下标, ...) = 值
|
数组中元素值的获取
获取数组中元素的值
1
| 数组名(一维数组的下标, 二维数组的下标, ...)
|
获取数组的下标最小值和最大值
获取数组的下标最小值
维数
:从1开始
1 2 3
| LBound(数组名)
LBound(数组名, 维数)
|
获取数组的下标最大值
1 2 3
| UBound(数组名)
UBound(数组名, 维数)
|
遍历数组
For循环
1 2 3
| For i = LBound(数组名) To UBound(数组名) ... Next i
|
For…Each循环
1 2 3
| For Each i In 数组名 ... Next i
|
控件数组
- 控件数组中的所有元素都必须是相同类型的控件
- 控件数组中的控件具有一个相同的控件名称
- 控件数组中的控件除了名称属性值外,其他属性可以不相同
- 控件数组中的元素是通过控件的Index属性进行区分的,取值范围为:0~32767
- 控件数组元素的下标可以不连续
- 控件数组中的所有控件共用相同的事件,控件数组的事件过程名后的一对括号内有一个参数Index,用来确定是哪一个控件发生了该事件
创建控件数组
方法一
第创建第一个控件时,其Index属性值为空
当粘贴了一个控件后
粘贴前的控件Index属性值为0
粘贴后的控件Index属性值为1
其后粘贴的控件Index依次+1
方法二
- 创建第二个相同类型的控件时,指定与第一个控件相同的控件名称
方法三
添加和删除数组中的元素
在使用Load()
方法之前,需要在设计模式下创建控件数组
使用Load()
方法添加的元素,默认是不可见的,Visible
属性的值默认为False
,需要手动改为True
才能显示出来
添加后的元素需要设置Left
属性和Top
属性来修改元素在窗体上的位置
只能删除用Load()
方法添加的控件,不能删除通过设计模式添加的控件
完成
参考文献
哔哩哔哩——教达优