еще как вариант:
1) создается массив с количеством элементов явно большим, чем требуется (по-крайней мере в примере)
то есть требуется 33 элемента, а массив объявляется на 501 элемент
2) если такой массив и требуется, то в цикле можно проверять содержит ли элемент что-нибудь:
Код:
if len(s1(i, 2)) >0 then 'выполняем поиск и замену
3) может это не совсем то, но: если значения список номеров телефонов и ФИО хранятся на листе Excel,
и требуется подставить эти значения в другом диапазоне, то можно использовать функцию Excel ВПР()
=ВПР(Искомое_Значение; Таблица; Номер_Столбца; Интервальный_Просмотр)
Искомое_Значение - в данном случае, ячейка с искомым номером телефона
Таблица - указываем диапазон, где содержится список телефонов и ФИО.
Нужно, чтобы в первой колонке обязательно было значение, по которому ведется поиск - то есть номер телефона,
и обязательно! таблица должна быть отсортирована по номерам телефонов
Номер_Столбца - номер колонки в списке с ФИО, то есть номер колонки относительно номера колонки с телефонами,
если считать, что у нас только телефон; ФИО, то номер колонки = 2
Интервальный_Просмотр - Ложь, если мы ищем точные значения
в общем, это оч хорошая функция, если к ней приспособиться
и все зависит от того, что требуется делать