nick7inc

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору SAS888 Цитата: А Вы сами пробовали хотя бы "протестить" предложенный код? | Свой код я проверял. Чтобы ваш код проверить, мне нужен был последний полный вариант (не фрагмент). В предыдущем сообщении вы мне его предоставили, сейчас гляну. Добавлено: Цитата: почему Вы предлагаете Цитата:F=-1 ? Нужно F = 0. | На тот случай, если (вдруг) функция вернёт 0 и мне потребуется определить, вернула она чего-нибудь или вылетела по ошибке. В последнем варианте (вряд ли она вернёт отрицательное значение) я получу -1. Добавлено: Цитата: Хотя, опять же, нет никакой разницы, что проверять. Хоть "If F > 0", хоть If Err = 0 (но до восстановления обработчика ошибок). Согласны? | Вы имеете ввиду отмену програмной обработки ошибок при помощи On Error goto 0? Не согласен. Если вы используете конструкцию: If условие Then ... End If и хотите использовать Err, то отмену програмной обработки ошибок вам придётся делать после блока IF ... Then ... End If, иначе вы обнулите Err. В этом случае, как я уже говорил, On Error Resume Next будет влиять на работу большого участка кода (что не оптимально, когда в коде есть недочёты). В своём примере я отменяю обработку ошибок сразу за "проблемным оператором". И если в моём коде есть ошибка, то она не маскируется оператором On Error Resume Next, а вылезает в процессе отладки с последующим её исправлением. Добавлено: SAS888 Код, похоже рабочий. Единственное, может быть ложное срабатывание при операциях со строками, содержащие формулы со словом "Лист". Добавлено: ol7ca Цитата: For ZZ = 2 To Workbooks("map3.xls").Sheets("TB").Range("K65536").End(xlUp).Row If Not IsEmpty(ZZ) Then | Как я понял, ZZ - номер строки. Не думаю, что команда IsEmpty() даст правильный результат, ей нужно передать ссылку на одну ячейку, если вы хотите узнать, пустая ли ячейка. Со столбцами и строками дело сложнее... Лучше применять конретные типы, а не универсальный variant. Отлаживать будет легче, да и код понятнее... Цитата: Application.DisplayAlerts = False Application.ScreenUpdating = False | Зачем без отмены действия, да ещё и несколько раз подряд вызывается? Было бы легче вам помочь, если бы были коментарии к коду (что вы и где хотите сделать, что за параметры вы передаёте, что ожидаете получить), да и файлы примера, где у вас что-то работает, а где-то ошибка. Просто так код у меня не работает, а гадать что и как у вас я не хочу.
---------- Джин, не лезь в бутылку. |
| Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 22:25 04-04-2008 | Исправлено: nick7inc, 00:20 05-04-2008 |
|