|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.02.2009, 00:32 | #1 |
Заблокирован
Регистрация: 23.02.2009
Сообщений: 306
|
Сохранение книги Excel по названию ячейки и по пути ячейки
Уважаемые профессионалы. Подскажите, пожалуйста. Можно ли закрывая книгу Excel, сделать так, чтобы она сохранялась под именем допустим ячейки A1, а путь сохранения ячейка А2? Это необходимо для актуального ведения журнала книг. Вообщем, чтоб ламеры не тупили соими разными шрифтами и не проявляли свою фантазию. А документы имели строгое название допутим контрагент и номер договора и списков и ничего другого. Ну я думаю, вы меня понимаете Папка сохранения тоже будет, конкретного контрагента.
|
24.02.2009, 01:02 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Можно. Но есть несколько нюансов.
1) Что делать, если пользователь пытается сохранить файл под другим именем (или в другую папку)? Выводить сообщение о невозможности данного действия, или просто блокировать возможность сохранения? А, может, предлагать сохранить под нужным именем? 2) А если пользователь изменит значения ячеек A1 и A2? 3) Что делать, если путь, указанный в ячейке A2, не существует? 4) Что делать, если файловая система откажет в сохранении по нужному пути (из-за разграничения прав)? 5) Что мешает пользователю закрыть этот файл, и вручную скопировать в нужную папку? Я бы сделал проще - просто запретил бы команду Сохранить как... Это делается макросом из одной строки: Код:
|
03.03.2009, 18:42 | #3 |
Пользователь
Регистрация: 24.02.2009
Сообщений: 29
|
и как же, всё-таки, задать такое имя?
в таком вот случае: сначала листы из книги1 перемещаются в новую книгу2, вот так: Sheets(Array("лист", "ещё лист")).Move далее нужно сделать чтобы сразу выскакивало окошко сохранения книги2, при чем имя должно быть задано как сцепка значений двух ячеек из старой книги1 (ну или можно значение одной ячеки взять), а вот куда у себя на компе эту книгу сохранят мне всё равно |
04.03.2009, 05:17 | #4 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
После того, как переместили листы, выполните код:
Код:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 04.03.2009 в 05:20. Причина: Добавлено |
04.03.2009, 11:01 | #5 |
Пользователь
Регистрация: 24.02.2009
Сообщений: 29
|
работает, спасибо!
Последний раз редактировалось eto; 04.03.2009 в 16:49. |
04.03.2009, 16:50 | #6 |
Пользователь
Регистрация: 24.02.2009
Сообщений: 29
|
ха, что-то я поторопилась.. не работает , т.е. диалоговое окно вызывается, а вот самого сохранения не происходит - у имени файла нет расширения и в выпадающем списке Тип файла: нет никаких вариантов, кроме Все файлы(*.*)
если нажать ОК, окошко молча закроется, имя у книги останется прежним и нового файла в папке, куда сохранялось не появится. |
04.03.2009, 18:50 | #7 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Попробуйте так:
Код:
|
04.03.2009, 19:20 | #8 |
Пользователь
Регистрация: 24.02.2009
Сообщений: 29
|
собрала код из двух, но все равно пока не получается, выдаёт ошибку вот здесь:
Код:
|
04.03.2009, 19:27 | #9 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Если книга, которую Вы пытаетесь сохранить, в момент работы макроса активна, то можно написать так: If VarType(FName) <> vbBoolean Then ActiveWorkbook.SaveAs FName Если же этот макрос запускается как раз из сохраняемой книги - тогда лучше так: If VarType(FName) <> vbBoolean Then ThisWorkbook.SaveAs FName И не забывайте - раз уж у Вас Excel 2007, то, соответственно, измените строку с фильтром - вместо FileFilter:="Excel Files (*.xls), *.xls" поставьте что-то вроде FileFilter:="Excel Files (*.xlsm), *.xlsm"
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 04.03.2009 в 19:30. |
|
05.03.2009, 10:57 | #10 |
Пользователь
Регистрация: 24.02.2009
Сообщений: 29
|
спасибо, с сохранением всё получилось. ^.^_b
остался такой нюанс - при открытии нового сохраненного файла слетает запрет на выделение защищенных ячеек пока работаешь с этим файлом не закрывая его после создания - всё ок, но если закрыть, а потом снова открыть - разрешает выделять все ячейки, хотя они по-прежнему остаются заблокированными, в чем может быть дело? в приложении пример |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Книги по графам. нахождение пути | Rusl92 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 17.12.2008 14:44 |
Значение ячейки по названию листа | VadimSh | Microsoft Office Excel | 4 | 02.12.2008 15:29 |
Как задать свойства ячейки в Excel? | Dux | Microsoft Office Excel | 6 | 16.08.2008 17:03 |
Защитить ячейки в Excel | Т@тьян@ | Общие вопросы Delphi | 2 | 29.04.2008 14:47 |
Как разделить число и текст в одной ячейки на две ячейки. | neboskreb | Microsoft Office Excel | 2 | 15.04.2008 19:39 |