Написала макрос, в котором перебираются все файлы в указанной папке: каждый файл открывается, из него копируется определенная информация в текущий и затем он закрывается.
Когда запускаю макрос перебора файлов, вылезает ошибка "Unable to read file" и ссылается на строку:
а файл-то существует, который вы открываете? открывается вручную? пароль установлен на файле? тот ли пароль? переменные Path и Report стринговые? эти переменные непустые? .... без примера ошибки в файле-примере можно гадать и гадать, и гадать...
А зачем Вы второй пароль указываете? Первый - для открытия. Второй - не для этого, а для записи в защищенные книги. Уберите второй пароль - Вы строкой .Password устанавливаете пароль только на открытие. Вот только его и указывайте.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Jack, попробовала открыть запароленные файлы, которые перебираются. 1й попросил ввести пароль и открылся, а второй выдал кучу сообщений и пароль попросил ввести дважды... Не понимаю, почему он первый отчет нормально сохранил, а остальные коряво? не могу прикрепить картинки ошибок, вылезает ошибка "При сохранении файла произошла ошибка".
но все равно не работает, т.к., как я уже писала, почему-то нормально запаролился только один файл - 1й, а остальные коряво, кучу сообщений при открытии выдают...первое из которых "Unable to read file"... Почему так может быть?
The_Prist, вот часть кода, которая отчеты создает:
Код
For i = 3 To LastRow_Pivot - 1
K = PVT.Cells(i, 1)
With Report
.Unprotect "1234"
.Range("$A$16:$O$" & LastRow_Total_Report).AutoFilter Field:=2, Criteria1:=K
.Protect "1234"
End With
Path = "C:\Users\egoryuno\Documents\test\"
ActiveWorkbook.Protect Structure:=True, Windows:=False
With ActiveWorkbook
.Password = "1234"
FName = K & "_Отчет" & ".xls"
.SaveCopyAs Filename:=Path & FName
.Password = ""
End With
ActiveWorkbook.Protect Structure:=False, Windows:=False
Next i
Report.Unprotect "1234"
Зачем два раза ActiveWorkbook.Protect? Может после сохранения надо .Unprotect "1234"? Плюс хотелось бы знать, что в FName хранится - может расширение не совпадает с расширением текущей книги.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
The_Prist, расширения совпадают, изменила код, но все равно нормально сохраняет только 1й отчет. а начиная со второго вылезают сообщения: 1. ввожу пароль 2. file error data may have been lost -->жму ок 3. Excel found unreadable content in 2_Отчет.xls.......--> жму Yes 4. Опять ввожу пароль 5. file error data may have been lost -->жму ок 6. excel was able to open the file by repairing or removing the unreadable content --> жму Close и только после этого отчет открывается.
А если первый отчет открывать, то: 1. ввожу пароль 2. file error data may have been lost -->жму ок и отчет открывается
Код
For i = 3 To LastRow_Pivot - 1
K = PVT.Cells(i, 1)
With Report
.Unprotect "1234"
.Range("$A$16:$O$" & LastRow_Total_Report).AutoFilter Field:=2, Criteria1:=K
.Protect "1234"
End With
Path = "C:\Users\egoryuno\Documents\test\"
With ActiveWorkbook
.Password = "1234"
FName = K & "_Отчет" & ".xls"
.SaveCopyAs Filename:=Path & FName
.Unprotect "1234"
.Password = ""
End With
Next i
Без файлов сказать нечего. Нужен файл исходный, из которого делаете эти файлы. Проблема где-то в коде и не факт, что в том куске, который Вы демонстрируете.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
The_Prist,V, Jack, вот файлик. В нем таблица, которая в цикле фильтруется по коду магазина, затем файл с таблицей в отфильтрованном виде сохраняется как копия. Критерии фильтра берутся из сводной таблицы на другом листе, сводная таблица предварительно создается...Думаю, что файлики с отчетами коряво паролятся из-за нее. Но, что с ней не так, не пойму, ошибок никаких не выдает...Может, вы подскажете чего-нибудь? Большое спасибо! Если эту проблему решу, то тогда и с открытием файликов не будет проблем..