2015-01-27 6 views
-1

Может ли кто-нибудь помочь мне с кодами VBA для нижеследующего условия. Я хотел бы создать обработчик ошибок, чтобы закрыть книгу Excel, если она открыта.VBA, чтобы закрыть книгу, если она открыта

Пробовал различные коды без каких-либо успехов.

EDIT: Недавно я попытался использовать код ниже.

If Workbooks("Combo.xlsx").IsOpen Then 
    Workbooks("Combo.xlsx").Close SaveChanges:=False 
Else: Resume Next 
MsgBox "Error: (" & Err.Number & ") " & Err.Description, vbCritical 
End If 

Это дает мне сообщение об ошибке: Run time Error: 9 Subscript Out of Range.

Я очень новичок в VBA & Не знаю, использовал ли я правильное утверждение и не понимаю, что происходит. Любая помощь могла бы быть полезна.

+0

Вопросы без кода, как правило, закрываются здесь. Какой код вы пробовали и с какими проблемами вы столкнулись? –

+0

Недавно я попытался использовать код ниже. Если Workbooks ("Combo.xlsx") IsOpen Тогда Workbooks ("Combo.xlsx") Закрыть SaveChanges:.. = False Else: Резюме Следующая MsgBox "Ошибка: (" & Err.Number & ")" & Err.Description, vbCritical End If Это дает мне сообщение об ошибке: Время работы Ошибка: 9 Подпись вне диапазона. Я очень новичок в VBA и не знаю, использовал ли я правильное заявление и не могу понять, что происходит не так. Любая помощь была бы действительно оценена. – DPA

ответ

0

Все, что вам действительно нужно

On Error Resume Next 
Workbooks("Combo.xlsx").Close SaveChanges:=False 
On Error Goto 0 

Вы можете игнорировать эту ошибку, если нет рабочей книги открыт с этим именем.

+0

Спасибо, Тим, пробовал использовать код, но столкнулся с тем же сообщением об ошибке: подстрочный код из диапазона и в то время как я отлаживаю его, выделите ниже код: ---- Если книги («Combo.xlsx»). IsOpen Then ----- Похоже, что это сообщение об ошибке Если идентификатор рабочей книги не открывается. Я хочу пропустить эти коды, если файл уже открыт и перейти к следующим шагам без предоставления сообщения об ошибке. Спасибо. – DPA

+0

Какова ваша настройка в редакторе VB в разделе «Инструменты»> «Параметры»> «Основные»> «Улавливание ошибок» *? Убедитесь, что это не «Break on all errors», или «On Error Resume Next» не может выполнять свою работу здесь. –

Смежные вопросы