EP04. “Size of an Array 数组大小”
🔒 登录后可标记已读UBound和LBound分别取出数组每个维度的最大、最小编号- 两者相减再加 1 就是这个维度的实际大小
- 讲怎么用这两个函数算出二维数组总共有几个元素
- 前置知识:基本的数组声明
重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
建立二维数组
Dim Films(1 To 5, 1 To 2) As String, x As Integer, y As Integer
这个数组是 5 行 × 2 列。
用 UBound / LBound 算出每一维的大小
x = UBound(Films, 1) - LBound(Films, 1) + 1
y = UBound(Films, 2) - LBound(Films, 2) + 1
UBound(Films, 1) 取第 1 维的最大编号(5),LBound(Films, 1) 取第 1 维的最小编号(1),相减再加 1 得到第 1 维实际大小(5);第 2 维同理算出 2。
算出总元素数
MsgBox "This array consists of " & x * y & " elements"
5 行 × 2 列 = 10 个元素。
学完你会
- ✅ 用
UBound/LBound取出数组某一维的最大/最小编号 - ✅ 用「最大编号 − 最小编号 + 1」算出该维的实际大小
- ✅ 把多维数组每一维的大小相乘,算出总元素数
常见错误
- 忘记
UBound - LBound之后还要再+ 1,算出来的大小会少 1 - 数组不是从 1 开始编号(比如从 0 开始)时,直接套用「最大编号」当大小,没有先用 LBound 确认起始编号
- 多维数组只算了其中一维的大小,忘记要把每一维的大小相乘才是总元素数
Sources
Blog / Website: