Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Проверка наличия файла в заданной директории Добавлено: 09.12.08 07:28  

Автор вопроса:  alfred
Открываю файл эксель обычным способом
Workbooks.Open filename:="c:\temp\1.xls"
как проверить наличии этого файла. и выводить сообщение как надо. тем замым закрывая макрос на выполнение.

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #1
Добавлено: 09.12.08 08:10
http://www.citforum.ru/programming/digest/fsovb6.shtml

Ответить

Номер ответа: 2
Автор ответа:
 alfred



Вопросов: 9
Ответов: 14
 Профиль | | #2 Добавлено: 09.12.08 09:15
почитал сцылу. но не увидел строчку которая проверяет наличие файла.

Ответить

Номер ответа: 3
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #3
Добавлено: 09.12.08 09:27
Вот ложка.
  1. 'для работы  с FSO нужно поставить ссылку '                              
  2. 'в меню References| Microsoft Scripting Runtime '
  3.                        
  4. Private Sub Command1_Click()
  5. Dim FilePath As String
  6. FilePath = "C:\1.txt"
  7.  If fso.FileExists(FilePath) = False Then
  8.  Select Case MsgBox("А файлика по указанному адресу"  (FilePath) "нет." & vbCrLf & "Создадим или пройдем дальше!", 1, "Облом")
  9. Case 1 ' ОК
  10.       Dim f                                                                    '|
  11.  Set f = fso.CreateTextFile(FilePath, True) '                              '|
  12.  f.Close 'Грохаем
  13. Case 2 ' Отмена
  14.     Exit Sub
  15. End Select
  16.     End If
  17. End Sub

Ответить

Номер ответа: 4
Автор ответа:
 alfred



Вопросов: 9
Ответов: 14
 Профиль | | #4 Добавлено: 09.12.08 09:34
а нельзя обойти fso.. может стандартными функциями?
Потму что макросами пользуются в сети. И для каждого пользователя бегать и подправлять офис нет нужды.
у когото 2003 у когото 2000 у когото 2007 офис.
Хочется чтоб макрос был идеален для всех версии офисов.

Ответить

Номер ответа: 5
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #5
Добавлено: 09.12.08 09:42
  1. Dim strVar As String
  2. ' Устанавливаем обработчик ошибки
  3. On Error GoTo OSHIBKA
  4. 'Открываем несуществующий файл.Возникает ошибка №53 "Файл не найден" и
  5. ' программа передаёт управление на метку OSHIBKA
  6. Open "C:\1.txt" For Input As #3
  7. Input #3, strVar
  8. Close #3
  9. Exit Sub ' Нужно выйти из процедуры, иначе появится ненужный MsgBox
  10.  
  11. OSHIBKA:
  12. If Err.Number = 53 Then ' Объект Err - содержит свойства ошибки
  13. MsgBox "Файл не найден!", vbCritical, "error"
  14. Else
  15. MsgBox "Какая-то другая ошибка!", vbCritical, "error"
  16. End If

Ответить

Номер ответа: 6
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #6 Добавлено: 09.12.08 14:13
  1. MyFileName = "Test1.xls"
  2. MyFullName = "D:\Test1.xls"
  3.  
  4. If MyFileName = Dir(MyFullName) Then
  5.   MsgBox "Файл : " & MyFileName & " найден"
  6. Else
  7.   MsgBox "Файл : " & MyFileName & " не найден"
  8. End If

Ответить

Номер ответа: 7
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #7
Добавлено: 09.12.08 14:47
Совсем коротко.
  1. MyFullName = "D:\Test1.xls"
  2. If Dir(MyFullName) <> "" Then MsgBox "Файл : " & MyFileName & " найден"

Ответить

Номер ответа: 8
Автор ответа:
 alfred



Вопросов: 9
Ответов: 14
 Профиль | | #8 Добавлено: 10.12.08 09:01
использовал
If Dir(";D:\Test1.xls";) = "" Then MsgBox "файл ненайден!"
спасибо!

Ответить

Номер ответа: 9
Автор ответа:
 Сергей И.



Вопросов: 0
Ответов: 1
 Профиль | | #9 Добавлено: 11.12.08 17:58
А как узнать размер файла, а?

Ответить

Номер ответа: 10
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #10 Добавлено: 11.12.08 19:27
Вызвать апи или так:
Dim FileSize As Long
Open "файл" For Binаry Access Read As 1
FileSize = LOF(1)
Close 1
msgbox FileSize

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам