Добрый день! Мне необходимо открыть 10 файлов. Файлы должны находиться в одной папке с этим файлом Хочу вывести сообщение о том, каких файлов в папке нет. Но при попытке открыть второй файл не обрабатывается ошибка оператором On Error GoTo ошибка. Т.е. после попытки открыть первый файл "файл_1.xlsx" - ошибка обрабатывается, а при попытке открыть второй файл "файл_2.xlsx" - ошибка не обрабатывается. Не пойму в чем дело. Может какой-то сброс надо делать типа err.clear
Добрый день! Мне необходимо открыть 10 файлов. Файлы должны находиться в одной папке с этим файлом Хочу вывести сообщение о том, каких файлов в папке нет. Но при попытке открыть второй файл не обрабатывается ошибка оператором On Error GoTo ошибка. Т.е. после попытки открыть первый файл "файл_1.xlsx" - ошибка обрабатывается, а при попытке открыть второй файл "файл_2.xlsx" - ошибка не обрабатывается. Не пойму в чем дело. Может какой-то сброс надо делать типа err.clearoctopus
octopus, здравствуйте, не используйте метки, если можно обойтись без них. IsBookOpen - Ваша функция. [vba]
Код
Sub openBooks() Dim objFSO As Object, fPath As String Set objFSO = CreateObject("Scripting.FileSystemObject") fPath = ThisWorkbook.Path & "\" файл = Array("файл_1.xlsx", _ "файл_2.xlsx", _ "файл_3.xlsx", _ "файл_4.xlsx", _ "файл_5.xlsx", _ "файл_6.xlsx", _ "файл_7.xlsx", _ "файл_8.xlsx", _ "файл_9.xlsx", _ "файл_10.xlsx")
For Each file In файл If Not IsBookOpen(CStr(file)) Then If objFSO.FileExists(fPath & file) = False Then notFound = notFound & ", " & file Else Workbooks.Open (fPath & file) End If End If Next file
If notFound <> "" Then notFound = Mid(notFound, 3) MsgBox "Не найдены следующие файлы:" & vbCrLf & notFound End If
End Sub
[/vba]
octopus, здравствуйте, не используйте метки, если можно обойтись без них. IsBookOpen - Ваша функция. [vba]
Код
Sub openBooks() Dim objFSO As Object, fPath As String Set objFSO = CreateObject("Scripting.FileSystemObject") fPath = ThisWorkbook.Path & "\" файл = Array("файл_1.xlsx", _ "файл_2.xlsx", _ "файл_3.xlsx", _ "файл_4.xlsx", _ "файл_5.xlsx", _ "файл_6.xlsx", _ "файл_7.xlsx", _ "файл_8.xlsx", _ "файл_9.xlsx", _ "файл_10.xlsx")
For Each file In файл If Not IsBookOpen(CStr(file)) Then If objFSO.FileExists(fPath & file) = False Then notFound = notFound & ", " & file Else Workbooks.Open (fPath & file) End If End If Next file
If notFound <> "" Then notFound = Mid(notFound, 3) MsgBox "Не найдены следующие файлы:" & vbCrLf & notFound End If