Вы должны получить ошибку времени выполнения 9, поскольку при индексировании i
будет 4 после того, как вы перебрали свой массив строк электронной почты.Как только он попытается сравнить значение emails(4)
с ""
, он должен создать «индекс вне диапазона», поскольку вы определили, что ваш массив составляет всего 3 элемента.
Для небольшого поясненияпопробуйте этот пример кода, он должен выдать ту же ошибку:
Function littleTest()
Dim teststr(1 To 3) As String
Dim i As Integer
teststr(1) = "abc"
teststr(2) = "def"
teststr(3) = "ghi"
i = 1
Do While teststr(i) <> ""
Debug.Print "i do it for the " & i & " time!"
i = i + 1
Loop
End Function
Вы уже нашли решение самостоятельно, поскольку UBound()
возвращает фактическую длину вашего массива, которая в вашем случае равна трем, поэтому она никогда не будетпоиск вне массива.