|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.01.2010, 13:30 | #1 |
Новичок
Джуниор
Регистрация: 25.01.2010
Сообщений: 3
|
Как избавиться от (Error 91)
Итак задача(необходимо выполнить в VBA):
Нужно в Excel-файле найти на 1-ом Листе, значение формата: "################" (16 цифр). Затем в строке где оно присутствует найти: "*##.##" либо "*##,##" И записать эти значения в текстовый файл. Вот что написал я: Код:
|
25.01.2010, 13:52 | #2 |
Пользователь
Регистрация: 25.11.2009
Сообщений: 55
|
Set c = .Find("????????????????", LookIn:=xlValues, LookAt:=xlWhole) ' поиск 1-го значения
По моему если у вас ничего не нашлось то с is nothing и проблема возникает вот с этим: c.Address <> firstAddress , c.Address не понятно что такое вот и ошибка
Не бывает сложных задач, бывают сложные решения
|
25.01.2010, 14:21 | #3 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
Изначальная причина ошибки здесь
Код:
Код:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
25.01.2010, 14:41 | #4 |
Новичок
Джуниор
Регистрация: 25.01.2010
Сообщений: 3
|
Спасибо большое!
Не подскажете как лучше избавиться от этой ошибки? Создать отдельную процедуру для поиска второго значения? Хм... по моему проблема есть в этой строчке: Код:
Последний раз редактировалось r0tten; 25.01.2010 в 15:31. |
25.01.2010, 16:12 | #5 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
Код:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru Последний раз редактировалось The_Prist; 25.01.2010 в 16:15. |
26.01.2010, 05:19 | #6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
1. The_Prist абсолютно прав. Если Вы используете метод Find, то метод FindNext будет использовать последние определенные опции. Поэтому, при такой организации поиска, от FindNext нужно отказаться.
2. Т.к. переменная c2ForFind имеет тип Range (что правильно), то присваивать ей нужно не число, а устанавливать диапазон. Хотя, я считаю, что эту переменную использовать вообще ни к чему. 3. В Вашем условии выхода из цикла есть лишняя проверка. Т.к. в цикл мы входим при условии, что If Not c Is Nothing, то зачем проверять это при выходе? 4. Учитывая все вышесказанное, фрагмент Вашего кода, определенный методом With, нужно изменить. Например, так: Код:
Чем шире угол зрения, тем он тупее.
|
26.01.2010, 06:47 | #7 |
Новичок
Джуниор
Регистрация: 25.01.2010
Сообщений: 3
|
Большое спасибо всем отписавшимся.
SAS888 Вам я очень благодарен за приведённый код.) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как избавиться от депрессии... :( ? | Alex Cones | Свободное общение | 79 | 01.12.2009 14:05 |
Как решить проблему с Error in loading DLL (Error 48)? | Klim Bassenger | Microsoft Office Excel | 4 | 23.10.2009 13:44 |
Как избавиться от ненужных чисел | Славный | Общие вопросы Delphi | 1 | 09.06.2008 22:40 |
как избавиться от 2.26188E+19?? | banker | Microsoft Office Excel | 11 | 12.12.2007 09:35 |
как избавиться от закладки | ЧИЖ | Общие вопросы Delphi | 3 | 24.06.2007 00:05 |