Доброго дня, Планетяне! Есть макрос, который формирует отчёт из сводной. Всё бы ничего, но выскакивает ошибка "К сожалению, нам не удалось найти файл…" при переименовании книги (сам файл с листом создаёт). Возился, возился - так ничего и не получилось)))) Пример брал тут. Что касается кода, то он большой, а непосредственно к созданию нового файла относится:
Скрытый текст
В начале кода…
Код
old_path = ThisWorkbook.path & "\"
дата = Format(Date, "yyyy-mm-dd")
bn_name = InputBox("Введите ОБЪЕКТ, по которому был произведён расчёт")
If bn_name = "" Then
bn_name = дата & " (" & Time & ")"
Else
bn_name = bn_name & "_" & дата & " (" & Time & ")"
End If
full_file = old_path & bn_name
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Нельзя юзерам позволять писать что угодно в предполагаемое имя файла... А если позволяете - обязательно нужно из написанного повыкидывать всё лишнее/недозволенное - может и это быть причиной ошибки.
Юрий М, у меня не был прописан FileFormat:=56 (в примере, который я брал, его не было). После прописывания другая ошибка и даже до создания книги дело не доходит. Изменил расширение с xls на xlsx, чтобы не требовалось прописывание FileFormat: - всё то же самое
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Hugo, я простые имена использовал - без запрещённых знаков. Что-то не так именно с сохранением книги под новым именем (так как саму книгу с заданным листом и отчётом в ней макрос создаёт)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Jack Famous написал: у меня не был прописан FileFormat:=56
Вы используете .SaveCopyAs - пытаетесь сохранить КОПИЮ, а изначально файл у Вас с другим расширением. Попробуйте сохранять не копию, а использовать .SaveAs
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Джек, а скажите мне, для того, чтобы выяснить причину ошибки при сохранении листа в книгу, обязательно нужно было прикреплять файл с цветными таблицами, с макросом на 187 строк? Ведь всего и нужно - макрос на несколько строк. Зачем в примере всё остальное?
Юрий М, потому что у меня всё в комплексе работает))) и я не знаю, как может это повлиять. Я же ключевые строки вывел в спойлеры, да и работает макрос шустро)) я, кстати, изменил файл и макрос в нём - вывел тип файла отдельно, для того, чтобы можно было в другие форматы сохранять
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Jack Famous написал: я простые имена использовал - без запрещённых знаков
Да ну? Правда? А это что:
Код
bn_name = дата & " (" & Time & ")" & ".xls"
Вы в курсе, что время содержит знаки двоеточия, которые запрещены в имени файла? Если сделать в коде так:
Код
file = old_path & Replace(bn_name, ":", "_")
то все отлично работает. Вывод: надо, надо учиться использовать средства отладки кода. Т.к. при наведении на переменную или выводе её в окно Immediate все видно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Jack Famous написал: у меня всё в комплексе работает))) и я не знаю, как может это повлиять
Сохранение листа в книгу каким образом может повлиять на Ваш "комплекс"? Включите макрорекордер, запишите копирование листа в новую книгу и присвоение нового имени - получите готовый код. Вообще не вижу проблем.
Всё, что я могу сказать - это ОЙ))))) Такой дурацкий косяк))) невнимательность и скудные знания). Большое Вам всем спасибо!))) Благодаря ссылке от Юрия, я теперь и в разные форматы могу выводить . Дмитрий подсказал решение, а Александр наглядно показал, что выходит, когда пытаешься двоеточие вставлять
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Hugo, прошу прощения))) Вы были первым ответившим и сразу в точку!))))) Спасибо Вам большое!!!
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄