MICROSOFT

EP04. “Size of an Array 数组大小”

首页 Microsoft 工具 Excel · VBA · Array · EP04
约 3 分钟· #EP04#Excel#Array
🔒 登录后可标记已读
  • UBoundLBound 分别取出数组每个维度的最大、最小编号
  • 两者相减再加 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:

  1. Size of an Array