Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Сохранение активной книги в exel

Ответить
Настройки темы
VBA - Сохранение активной книги в exel

Старожил


Сообщения: 369
Благодарности: 49

Профиль | Отправить PM | Цитировать


Здрасьте всем.
Сломал голову.
Нужно сохранить копию открытой книги с таким же названием, но к названию ещё прибавить и текущую дату со временем.
пробовал через ....SaveCopyAs....- пишет ошибка № 424 или 242 - не должно быть в имени двоеточия или точки запятой (это в формате даты) и не понимаю как применить Name или Names к ActiveWorkbook. Пишет недопустимое свойство для данного события или выражения- по памяти не помню. Есть у кого какие соображения?

Отправлено: 23:46, 10-12-2007

 

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


azbest, может код, который ошибку выдаёт, покажете? Я честно говоря не очень понял, в чём проблема.

-------
http://ivank.ru


Отправлено: 00:36, 11-12-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 181
Благодарности: 43

Профиль | Отправить PM | Цитировать


Попробуй так:

Код: Выделить весь код
Public flg As Boolean

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI = True Or flg = True Then Exit Sub
    a$ = Now
    a$ = Replace(a$, ":", ".")
    a$ = Replace(a$, " ", "_")
    a$ = Replace(ThisWorkbook.FullName, ".xls", "") + "_" + a$ + ".xls"
    flg = True
    ActiveWorkbook.SaveAs a$
    Cancel = True
    flg = False
End Sub
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:17, 11-12-2007 | #3


Старожил


Сообщения: 369
Благодарности: 49

Профиль | Отправить PM | Цитировать


Сам код программы на другом комп-е и в другом месте, номер ошибки сейчас не узнать,
но неважно.
Исходные условия:
Открытая рабочая книга (пусть даже пустая)
Задача:
Сохранить её копию, привязав эту копию ко времени её сохранения, то есть
сохраняем копию (с тем же именем прибавив к нему дату и время сохранения),
не закрывая рабочую книгу.
Всё.

Как я делал:
1) Сначала сохраняем новую книгу под нужным нам именем.(У новой книги имени ведь нет).
2) С помощью двух формул создаем "время и дату" в нужном нам формате.
3) Привязываем "время и дату" к имени файла через

Activeworkbook.SaveCopyAs filename="*********.xls"

В результате всего этого возникает файл, который - точная копия моей активной книги,
но без даты и времени, а звать его - False.

В качестве альтернативы пробовал присвоить имя активной рабочей книге
"чтоб не сохранять 10 раз одно и тоже",

по аналогии

Sheets("Лист1").Name= "Ё-маё"

Так с листом такое проходит а с книгой - сразу пишет:

"Ошибка компиляции. Невозможно присвоение значения свойству, доступному только для чтения."

не давая запуститься выполнению кода. Если его закоментировать, тогда всё выполняется но в результате появляется он - False.

Alexej77 - только сейчас увидел ваш совет, спасибо, попробую разобраться что к чему.

Отправлено: 23:54, 11-12-2007 | #4


Старожил


Сообщения: 369
Благодарности: 49

Профиль | Отправить PM | Цитировать


Кажется понял почти всё.
"Replace" - это удобно. Я у себя этого ещё не применял.
а flg как я понял - позволяет срабатывать всему этому делу только один раз,
в данной открытой книге.
Вот что за SaveAsUI - незнаю.
В связи с этим ещё вопрос - есть ли у Вас ссылка на литературу типа
"E-book" по VBA чтобы расписывалось каждое свойство, событие итд.
В подсказке VBA - когда подносишь курсор к нужному "слову" и жмешь
F1 - возникает текст на английском. Но не всегда его можно понять
правильно. Примеры тоже не всегда удачны для понимания.
В книгах что у меня дается описание "но не по всем операторам и их
возможным свойствам, событиям и тд"
Одним словом где можно прочитать
поконкретнее и поподробнее о VBA "по-русски"

Отправлено: 01:36, 12-12-2007 | #5


Старожил


Сообщения: 181
Благодарности: 43

Профиль | Отправить PM | Цитировать


Про flg - правильно думаешь.
SaveAsUI - если True, то пользователь пытается сохранить книгу через "Сохранить как...".
Ссылок и литературы нет. Только этот маленький хелп.

Последний раз редактировалось Alexej77, 28-09-2008 в 23:06.


Отправлено: 20:56, 12-12-2007 | #6


Старожил


Сообщения: 369
Благодарности: 49

Профиль | Отправить PM | Цитировать


Похоже Replace в моем VBA ещё не присутствует. На свойства написано vba 1997-2000. А эта функция как я понял в vba 2002. Нашел нечто подобное из вашего "скомпилированного" файла - функция format. Ещё раз спасиб за архив. Примеры там понятные.

Отправлено: 23:04, 14-12-2007 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Сохранение активной книги в exel

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Сервер зависает при активной сети uneform_alex Microsoft Windows NT/2000/2003 7 30-07-2009 06:50
Выделение активной ссылки angeldragon Вебмастеру 11 20-06-2004 18:59
VB для Exel Patrick Программирование и базы данных 4 28-04-2004 00:03
Exel tara Программирование и базы данных 2 12-03-2004 12:14
Exel в браузере Guest Вебмастеру 2 07-07-2003 07:30




 
Переход