Количество элементов в массиве одноразмерных вариантов в excel

Является ли этот код правильным для определения количества элементов в массиве одноразмерных вариантов в Excel VBA. Предположим, у меня есть вариант массива с именем Array1 с k элементами.

Dim n as Integer
n = UBound(Array1)

Ответ 1

Чтобы получить точный счет, вам нужно сделать UBound - LBound + 1. Это связано с тем, что массивы не должны перейти от индекса 1 к n, они могут начинаться с любого нужного индекса. Здесь пример, где он идет от 3 до 7, что составляет в общей сложности 5 элементов (3, 4, 5, 6 и 7):

Sub tgr()

    Dim Array1(3 To 7) As Variant
    Dim lNumElements As Long

    lNumElements = UBound(Array1) - LBound(Array1) + 1
    MsgBox lNumElements

End Sub

Ответ 2

Попробуйте "CountA"

Dim myArray(1 to 10) as String
Dim arrayCount as String
arrayCount = Application.CountA(myArray)
Debug.Print arrayCount