Страницы: 1
RSS
Сохранение листа из книги в новый файл с новым названием
 
Доброго дня, Планетяне!
Есть макрос, который формирует отчёт из сводной. Всё бы ничего, но выскакивает ошибка "К сожалению, нам не удалось найти файл…" при переименовании книги (сам файл с листом создаёт). Возился, возился - так ничего и не получилось)))) Пример брал тут.
Что касается кода, то он большой, а непосредственно к созданию нового файла относится:
Скрытый текст


Скрытый текст


Заранее спасибо!
Изменено: Jack Famous - 22.06.2017 14:12:56
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Сохранение листов в отдельные книги есть в "Приемах". Вот статья.
 
Нельзя юзерам позволять писать что угодно в предполагаемое имя файла...
А если позволяете - обязательно нужно из написанного повыкидывать всё лишнее/недозволенное - может и это быть причиной ошибки.
 
Юрий М, у меня не был прописан FileFormat:=56 (в примере, который я брал, его не было). После прописывания другая ошибка и даже до создания книги дело не доходит. Изменил расширение с xls на xlsx, чтобы не требовалось прописывание FileFormat: - всё то же самое
Изменено: Jack Famous - 22.06.2017 13:58:16
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Hugo, я простые имена использовал - без запрещённых знаков. Что-то не так именно с сохранением книги под новым именем (так как саму книгу с заданным листом и отчётом в ней макрос создаёт)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
у меня не был прописан FileFormat:=56
Вы используете .SaveCopyAs - пытаетесь сохранить КОПИЮ, а изначально файл у Вас с другим расширением. Попробуйте сохранять не копию, а использовать .SaveAs
 
Юрий М, и это уже попробовал)))) ошибка на том же этапе, так же 1004, но уже немного текст другой. Попробовал расширение xlsm и CopyAs - ничего нового
Изменено: Jack Famous - 22.06.2017 14:04:41
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Джек, а скажите мне, для того, чтобы выяснить причину ошибки при сохранении листа в книгу, обязательно нужно было прикреплять файл с цветными таблицами, с макросом на 187 строк? Ведь всего и нужно - макрос на несколько строк. Зачем в примере всё остальное?
 
Юрий М, потому что у меня всё в комплексе работает))) и я не знаю, как может это повлиять. Я же ключевые строки вывел в спойлеры, да и работает макрос шустро)) я, кстати, изменил файл и макрос в нём - вывел тип файла отдельно, для того, чтобы можно было в другие форматы сохранять
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
ActiveSheet.Copy
ActiveWorkbook.SaveAs file, ActiveWorkbook.FileFormat

Цитата
Jack Famous написал:
я простые имена использовал - без запрещённых знаков
Да ну? Правда? А это что:
Код
bn_name = дата & " (" & Time & ")" & ".xls"

Вы в курсе, что время содержит знаки двоеточия, которые запрещены в имени файла?
Если сделать в коде так:
Код
file = old_path & Replace(bn_name, ":", "_")

то все отлично работает.
Вывод: надо, надо учиться использовать средства отладки кода. Т.к. при наведении на переменную или выводе её в окно Immediate все видно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Jack Famous написал:
у меня всё в комплексе работает))) и я не знаю, как может это повлиять
Сохранение листа в книгу каким образом может повлиять на Ваш "комплекс"?
Включите макрорекордер, запишите копирование листа в новую книгу и присвоение нового имени - получите готовый код. Вообще не вижу проблем.
 
т
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
Всё, что я могу сказать - это ОЙ))))) Такой дурацкий косяк))) невнимательность и скудные знания).
Большое Вам всем спасибо!)))
Благодаря ссылке от Юрия, я теперь и в разные форматы могу выводить  :D. Дмитрий подсказал решение, а Александр наглядно показал, что выходит, когда пытаешься двоеточие вставлять
Изменено: Jack Famous - 22.06.2017 14:49:30
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Здорово! Один я только ничего по делу не сказал :)
 
Hugo, прошу прощения))) Вы были первым ответившим и сразу в точку!)))))
Спасибо Вам большое!!!
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Ну не совсем в точку - Time прошляпил... Но в целом угадал.
А вообще - юзвери ещё те звери :)
Изменено: Hugo - 22.06.2017 15:42:43
Страницы: 1
Наверх