2010-11-19 1 views
0

я использую DIR, чтобы открыть файл:УВА: ухватить файл не найден исключение с DIR

If Dir("some dir" + "some file", vbNormal) <> "" The 
End If 

если DIR не существует, то я получаю исключение BAD имя файла или номер; Однако, если каталог существует, этот оператор IF работает нормально.

вопрос как справиться с исключением в случае, когда DIR не существует?

+0

Что такое «некоторые реж», вероятно, будет? Вышеприведенный код работает как есть, несмотря на использование + для конкатенации, а не &, не создает заявленную ошибку. – Fionnuala

ответ

2
Public Function IsADirectory(ByVal TheName As String) As Boolean 
    If GetAttr(TheName) And vbDirectory Then 
    IsADirectory = True 
    End If 
End Function 

как насчет этого?

+0

выглядит отлично, не могли бы вы также ответить на этот вопрос http://stackoverflow.com/questions/4227526/vba-passing-a-variable-into-error-handles –

+0

обязательно ... Я посмотрю – thedev

+0

это делает не работает, он возвращает файл не найден –

0

Следующий код обрабатывает случай мишени не существующего:

Public Function IsADirectory(ByVal TheName As String) As Boolean 
    On Error Resume Next 
    Dim theResult As Boolean 
    theResult = GetAttr(TheName) And vbDirectory 
    If Err.Number = 0 Then 
     IsADirectory = theResult 
    Else 
     MsgBox "The target is not found." 
    End If 
End Function 
Смежные вопросы