SAS888
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ol7ca Алгоритм этой процедуры такой: объявляем массив из одного элемента, затем ищем в каждом листе, в ячейках, содержащих формулу, интересующий нас фрагмент. При обнаружении, записываем его в массив и увеличиваем размерность массива на 1 (подготовка к вводу следующего значения). Поэтому, при выходе из цикла, размерность массива оказывается на 1 больше, чем найденных значений (последний элемент - "пустой"). Для этого мы корректируем размерность, уменьшая на 1 (тест этого кода у меня проходит). Совет такой: так как в коде включен перехват ошибок (который необходим на случай, если на листе не нашлось ни одной ячейки с формулой), то отладчик выдаст ее только после отключения перехвата ошибок, т.е. именно в этой строке. Скорее всего массив, по каким-то причинам, вообще не был сформирован. Поэтому, ошибка, возможно, происходит раньше. Проверьте правильность задания строки для поиска. В моем коде это Цитата: If InStr(1, myCell.Formula, "Лист") <> 0 Then | Вместо слова "Лист" нужно вставлять строку, соблюдая все правила ее формирования. Так, например, если нужно получить строку 'CN MKT'!AB133, то нужно записать так: Код: Chr(39) & "CN MKT" & Chr(39) & "!AB133" |
| Всего записей: 398 | Зарегистр. 31-10-2007 | Отправлено: 07:22 29-03-2008 | Исправлено: SAS888, 07:45 29-03-2008 |
|