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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.12.2008, 11:41   #1
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
Вопрос Помогите подправить формулу!

Допустим на листе в столбце А есть значения: А, Б, В, Г, Д и Е.

Если с помощью данного кода я ищу одно из этих значений, то все ОК и выполняется команда GoTo 1.
Но если я ищу допустим Ж, то выдается ошибка "Object variable or With block variable not set", и GoTo 4 не выполняется. Что надо подправить.

If Selection.Find(What:="А", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Select Then
GoTo 1
Else:
GoTo 4
End If

Спасибо!
Maxx вне форума
Старый 16.12.2008, 12:23   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

я бы так написал вместо вашего:
Код:
on error goto 4
If Selection.Find(What:="А", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Select Then GoTo 1
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 16.12.2008, 12:40   #3
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Потрясающе! Все заработало как надо!
Огромнейшее СПАСИБО!

А можно еще вопрос?

Я пользуюсь Вашей записью:
Workbooks.Open Filename:=ActiveWorkbook.Path & "\Архив цен" & "\" & Имяфайла & ""

Хотелось бы написать код, который бы искал файл с указанным именем в папке "Архив цен", и если таковой не найден то MsgBox "Файл не найден!" и выход из процедуры.
Maxx вне форума
Старый 16.12.2008, 12:44   #4
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Может быть надо так?

If Not Workbooks.Find Filename:=ActiveWorkbook.Path & "\Архив цен" & "\" & Имяфайла & "" Then
MsgBox "Фал не найден"
GoTo 3

где 3 - это путь к End Sub
Maxx вне форума
Старый 16.12.2008, 13:02   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно, например, так:
Код:
On Error Resume Next
    Workbooks.Open (ActiveWorkbook.Path & "\Архив цен" & "\" & Имяфайла)
    If Err <> 0 Then Exit Sub
    On Error GoTo 0
Где "Имяфайла" должно содержать расширение. Если нет - добавьте через &.
В результате, если файл с таким именем в этой папке существует, то он откроется, а если нет - выход из процедуры.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 16.12.2008, 13:43   #6
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Имяфайла уже содержит разрешение.

В общем, я подправил и сделал вот так:

On Error Resume Next
Workbooks.Open Filename:=ActiveWorkbook.Path & "\Архив цен" & "\" & Имяфайла & ""
If Err <> 0 Then
GoTo 5 ' путь к меседжбокс и End Sub
Else:
Windows(Имяфайла).Activate
ActiveWindow.Close
GoTo 7 ' Продолжение кода
End If

Все заработало лучшим образом. СПАСИБО за идею!!!
Maxx вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
constructor, destructor override. Подправить код. Roof Общие вопросы Delphi 9 31.07.2008 13:41
Помогите пожалуйста исправить подправить процедуру (строки) Rumus Помощь студентам 5 02.07.2008 16:50
Помогите написать формулу Pinguin82 Microsoft Office Excel 4 01.07.2008 09:01
Помогите найти формулу ALEXEI_76 Microsoft Office Excel 10 29.04.2008 22:52