Страница: 1 |
Вопрос: Создать книгу со своим именем на основе шаблона | Добавлено: 26.06.06 13:23 |
Автор вопроса: ![]() |
После выполнения строки
Workbooks.Open Filename:=MyPath + "\" + "mytemplate.xlt"
создастся книга с именем типа mytemplateXX.xls Как создать книгу на основе шаблона с именем mytemplate_date_XX.xls |
Ответы | Всего ответов: 9 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #1 | Добавлено: 26.06.06 17:46 |
Насколько мне известно это невозможно. Чисто иллюзорно можно сделать: Workbooks.Windows(1).Caption = "Пиши че хочешь.xls" Сохранить программно можно тоже с любым именем. Это просто. А вот как сделать так чтобы когда книга только создалась и пользователь выбрал сохраниние по умолчанию выдавалось заданное тобой имя:Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Вот такой обходной путь. А стандартно по-моему невозможно.
Cancel = True Application.GetSaveAsFilename InitialFilename:="ПолныйПутьФайла.xls" End Sub |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 5 Ответов: 276 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 26.06.06 21:48 |
____ А что мешает после привёдённой строки (создания) применить ActiveWorkbook.SaveAs?... |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #3 | Добавлено: 26.06.06 22:31 |
Я ж говорю - сразу создать и сохранить - это просто. И ему похоже не нужно. А вот задавать имя по умолчанию "до сохранения" - этого сделать невозможно - поэтому через обходной путь (1). |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 3 |
Профиль | Цитата | #4 | Добавлено: 27.06.06 07:04 |
Спасибо за ответы.
Но что-то я не смог реализовать даже обходной путь. Как видно из первого сообщения нужно менять название книги, созданной на основе шаблона. Соответственно и метод Workbook_BeforeSave должен быть или в самом шаблоне, или как-то появиться во вновь созданной книге. В первом случае, после добавления кода в метод Workbook_BeforeSave файла шаблона, я не могу сохранить шаблон со старым именем. ![]() Во втором случае, я не знаю как на лету добавить код в метод книги. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #5 | Добавлено: 27.06.06 10:23 |
Куда угодно добавь этот код и все у тебя будет (хочешь в шаблон - событие при открытии, хочешь в персональную книгу, хочешь в надстройку, кнопочку можешь под это сделать):
Sub ДобавлениеКниги()
Workbooks.Open Filename:=MyPath + "\" + "mytemplate.xlt" ActiveWorkbook.SaveAs Filename:="ПолноеИмяФайла.xls" End Sub Ну просто же! Не понятно с чем у тебя проблемы. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 3 |
Профиль | Цитата | #6 | Добавлено: 27.06.06 11:40 |
Я разом создаю несколько книг с различным содержанием на основе одного и того же шаблона. Сохраняться физически на диске должны только те книги, которые захочет пользователь, то есть только те, где пользователь нажмет кнопку "Сохранить".
В имени файла (книги) должна присутствовать дата. Хочется облегчить пользователю работу и автоматом генерировать нужное имя файла. Как я понимаю, при использовании ActiveWorkbook.SaveAs книги будут сохраняться на диске, а этого делать не хочется. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #7 | Добавлено: 27.06.06 12:09 |
Тогда снова к нашим баранам:
1. Workbooks.Open Filename:=MyPath + "\" + "mytemplate.xlt" Вот ты их наплодил несколько.
2. В каждую книгу программо помещай код: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True Application.GetSaveAsFilename InitialFilename:="ПолныйПутьФайла.xls" End Sub 3. Таким образом при выборе пользователя кнопочки сохранить стандартное событие будет отменяться и заменяться твоим см. пункт 2. Вот и всё. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 3 |
Профиль | Цитата | #8 | Добавлено: 27.06.06 12:57 |
Прошу прощения за "нескромные" вопросы (на VBA пишу 2-й день, книг под рукой нет, в стандартном хелпе не нашел): каким образом можно осуществить программно вставку кода?
|
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #9 | Добавлено: 27.06.06 13:32 |
Посмотрите это: http://www.sql.ru/forum/actualpost.aspx?bid=4&tid=226373&mid=0&p=1
|
Страница: 1 |
|