Страницы: 1
RSS
Проверка наличия файла
 
Может кто-то знает, как проверить существует файл или нет?  
Проблема такова, автоматом происходит подстановка картинок к строкам с названиями, маркрос ищет название определённой ячейки в выбранной строке и вставляет картинку с аналогичным названием, а что делать, если картинки такой почему-то нет? Как до начала вставки проверить есть она или нет?
Is This the World We Created?
 
Sub Макрос1()  
   If Dir("C:\Picture.jpg") = "" Then  
       MsgBox "Такой картинки нет!", 48, "Ошибка"  
   Else  
       MsgBox "Такая картинка есть!", 64, "Картинка"  
   End If  
End Sub
 
Спасибо, всё работает.  
 
Но столкнулся с проблемой, если сервер, на которм лежат фотографии отключен, в этом случае идёт длительная проверка, а потом ошибка. Можно ли также проверять наличие сервера и если он не найден перенаправлять на внутренний диск компа?
Is This the World We Created?
 
Sub Check_Disk()  
If Dir("C:\*", vbSystem) <> "" Then  
MsgBox "Диск есть"  
Else: MsgBox "Диска нет"  
End If  
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Не работает корректно. Когда диск подключен, всё OK. Но стоит отключиться от сети и следует длительная проверка, потом выскакивает сообщение    
Run-time error '52':    
Bad file name or number  
 
Пробовал использовать номер ошибки, но что-то видимо не так делаю. Код ниже:  
 
Sub Check_Disk()  
If Dir("\\192.168.1.200\c\*", vbSystem) <> "" Then  
On Error Resume Next  
If Err.Number = 52 Then  
Err.Clear  
MsgBox "Диска нет"  
Exit Sub  
End If  
MsgBox "Диск есть"  
Else: MsgBox "Диска нет"  
End If  
End Sub
Is This the World We Created?
 
Предлагаю такой вариант  
 
Sub Check_Disk()  
   On Error Resume Next  
   If Dir("\\192.168.1.200\c\", vbSystem) <> "" Then  
       If Err = 52 Then  
            Err.Clear  
            MsgBox "Диска нет!", 48, "Ошибка"  
            Exit Sub  
        End If  
       If Err <> 0 Then  
           MsgBox "Произошло ошибка!", 48, "Ошибка"  
           Exit Sub  
       Else  
           On Error GoTo 0  
           MsgBox "Диск есть!", 64, ""  
       End If  
   End If  
End Sub
 
Странно...У меня все работает.  
А здесь "If Dir("\\192.168.1.200\c\*", vbSystem) <> "" Then" после "с" не надо двоеточие ставить?  
If Dir("\\192.168.1.200\c:\*", vbSystem) <> "" Then
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
На самом деле инструкцию On Error Resume Next надо выше поднять на одну строку
 
Всё заработало! Спасибо всем за участие в решении проблемы.  
Pavel55 - отдельное спасибо.  
 
it's a kind of magic
Is This the World We Created?
Страницы: 1
Наверх