Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 10:56   #1
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
Плохо Поиск значения в диапазоне

Уважаемые форумчане.
Для поиска номера в диапазоне есть такая программа.
Sub Inputbox1()
Dim iValue As Variant
Do
iValue = Application.InputBox("Введите номер:", "Ввод")

If iValue = False Then Exit Sub 'если нажали Cancel

Loop Until (iValue < 1000000 And iValue > 1)
Columns("A:A").Select
Selection.Find(What:=iValue, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

End Sub

Но если введен номер, который хоть и принадлежит заданному диапазону от 1 до 1000000, но в ячейках еще не записан, программа останавливается.
Пример. В ячейках нет номера 450. Задаем поиск значения 450. Программа 450 не находит, останавливается здесь:
Selection.Find(What:=iValue, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

И выдает ошибку 91.

Подскажите, пожалуйста, как преодолеть эту ошибку, сообщить через MsgBox о том, что такой номер не найден в диапазоне и вернуться к записи:
iValue = Application.InputBox("Введите номер:", "Ввод")
Sergey112233 вне форума Ответить с цитированием
Старый 19.12.2010, 12:43   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

on error resume next
Columns("A:A").Find(What:=iValue, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
if err.number>0 then Msgbox iValue & " Not Found"
on error goto 0
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.12.2010, 20:54   #3
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию Поиск значения в диапазоне

IgorGO,
Спасибо
Sergey112233 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить и удалить значения, в диапазоне ячеек. segail Microsoft Office Excel 9 02.07.2010 11:20
Поиск в диапазоне с двумя условиями fury1986 Microsoft Office Excel 2 31.01.2010 18:54
Поиск диапазоне по формату ячейки Meta2 Microsoft Office Excel 2 11.11.2009 13:57
Поиск значения в таблице solo7_77 Microsoft Office Excel 3 15.11.2008 01:26
Поиск значения Жираффа Microsoft Office Excel 8 03.03.2008 05:47