Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам