Ответ 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