Information.UBound(Array, Int32) 方法

定義

回傳陣列所指定維度中可用的最大下標。

public static int UBound(Array Array, int Rank = 1);
static member UBound : Array * int -> int
Public Function UBound (Array As Array, Optional Rank As Integer = 1) As Integer

參數

Array
Array

必須的。 任何資料型態的陣列。 你想找到一個維度中可能最高的下標的陣列。

Rank
Int32

Optional. Integer。 要回傳最大下標的維度。 第一維用 1,第二維用 2,依此類推。 若 Rank 省略,則假設為1。

傳回

Integer。 指定維度下標能包含的最高值。 若 Array 只有一個元素,則 UBound 回傳 0。 若 Array 沒有元素,例如為零長度字串,則回 UBound 傳 -1。

例外狀況

ArrayNothing

Rank 小於 1,或 Rank 大於 的 Array階級。

範例

以下範例使用該 UBound 函數來決定陣列指定維度的最高可用下標。

Dim highest, bigArray(10, 15, 20), littleArray(6) As Integer
highest = UBound(bigArray, 1)
highest = UBound(bigArray, 3)
highest = UBound(littleArray)
' The three calls to UBound return 10, 20, and 6 respectively.

備註

由於陣列下標從 0 開始,維度長度比該維度中可用的最大下標大一。

對於維度為以下的陣列, UBound 回傳下表中的值:

Dim a(100, 5, 4) As Byte
致電UBound 返回值
UBound(a, 1) 100
UBound(a, 2) 5
UBound(a, 3) 4

你可以用它 UBound 來判斷陣列中元素的總數,但必須調整它回傳的值,以考慮到下標是從 0 開始的事實。 以下範例計算前述範例中陣列 a 的總大小:

Dim total As Integer
total = (UBound(A, 1) + 1) * (UBound(A, 2) + 1) * (UBound(A, 3) + 1)

計算出來的 total 數值是 3030,也就是 101 * 6 * 5。

適用於

另請參閱