- 系统环境:Windows 10
- Excel:2010版本
今天讲讲数组常用函数
IsArray,Array,Ubound,Lbound
Part 1:数据类型
- 定义变量的时候可以同步定义变量的数据类型
- 数据类型包括:整型Integer,布尔型Boolean,双精度浮点型Double,字符串String,变体型Variant等
- 数据类型决定了变量在内存中的存储方式和占用空间,也会影响到程序运行速度,计算机硬件资源是有限的,合理选择数据类型,尤其对于大型程序是很有必要的
- 通过变量类型告诉计算机你想干啥,也可以防错
- 当不确定变量具体的类型时,数据类型可选择为变体型Variant
- 当变量定义采用Dim X 未指定类型时,默认即为变体型Variant
Part 2:Array,IsArray
- Array,创建一个数组,要求对应变量声明为变体型Variant,否则会报错
- IsArray判断变量是否为数组,返回True,False
- Option Explicit,在过程前加上这一句,即要求所有变量必须先定义再使用,及显式定义
- 可以在菜单中统一设置显式定义,工具-选项-编辑器-勾选要求变量声明,如图1所示
图1 选项
- 代码如下
Option Explicit
Sub test()
Dim astrTest1(1 To 3) As Integer
Dim astrTest2 As Variant
Dim intValue As Integer
Dim bolValue1 As Boolean
Dim bolValue2 As Boolean
Dim intI As Integer
For intI = 1 To 3 Step 1
astrTest1(intI) = intI
Next intI
astrTest2 = Array("VB", "与", "Office")
intValue = 1
bolValue1 = IsArray(astrTest2)
bolValue2 = IsArray(intValue)
End Sub
图2 代码截图
Part 3:Ubound,Lbound
- Ubound确定数组的上边界
- Lbound确定数组的下边界
- 数组默认下边界从0开始
- 可以人为指定数组上下边界,要求上边界大于下边界即可
代码如下
Option Explicit
Sub test()
Dim astrTest1(1 To 3) As Integer
Dim astrTest2 As Variant
Dim intUpLimit1 As Integer
Dim intDownLimit1 As Integer
Dim intUpLimit2 As Integer
Dim intDownLimit2 As Integer
Dim intI As Integer
For intI = 1 To 3 Step 1
astrTest1(intI) = intI
Next intI
astrTest2 = Array("VB", "与", "Office")
intUpLimit1 = UBound(astrTest1)
intDownLimit1 = LBound(astrTest1)
intUpLimit2 = UBound(astrTest2)
intDownLimit2 = LBound(astrTest2)
Debug.Print ("intDownLimit1=" & intDownLimit1)
Debug.Print ("intUpLimit1=" & intUpLimit1)
Debug.Print ("intDownLimit2=" & intDownLimit2)
Debug.Print ("intUpLimit2=" & intUpLimit2)
End Sub
输出如下
intDownLimit1=1
intUpLimit1=3
intDownLimit2=0
intUpLimit2=2
图3 代码截图
以上,为本次的介绍内容,下回见。
本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条