Есть файл Книга1.xls. Этот файл сохранен в каталоге «Мои документы». Нужно, чтоб при работе с этим файлом он автоматически сохранялся через каждые 20 секунд. Можно ли создать такой макрос? Как будет выглядеть его полный код (VBA для меня – темный лес, умею только записывать действия в макрос)? И как его запустить один раз (пусть даже после, а не в момент открытия файла Книга1.xls) и до конца сеанса работы с файлом Книга1.xls? |
|
ytk5kyky Пользователь Сообщений: 2410 |
В модуль ЭтаКнига: |
Помогите, вставила этот макрос в оооочень важный файл, переделала его не под сохранение а закрытие, и теперь он открывется буквально на несколько секунд, я не могу ничего успеть. Что делать?????????? Я просто в отчаянии |
|
не подумала, а как сделать чтоб закрывался через 30 сек????? |
|
ytk5kyky Пользователь Сообщений: 2410 |
Я так понял, что 20 сек не хватало, а 30 вполне достаточно? |
{quote}{login=Лузер™}{date=22.07.2009 03:14}{thema=}{post}Я так понял, что 20 сек не хватало, а 30 вполне достаточно? Я так и сделала )))) до того как мне кто-то ответил )))))) Все-таки женская логика существует, сейчас попробую ваш вариант по закрытию ))) Спасибо |
|
Пишет что невозможно выполнить макрос в такой-то книге, возможно данный макрос отсутствует, либо все макросы отключены. Все у меня есть((((( Пока писала поняла в чем проблема, функцию Close30 в макросы засунуть нужно а не в КНИГУ1. ГЛУПАЯЯЯЯЯЯЯЯЯ |
|
СПАСИБО ОГРОМНОЕ, на радостях поблагодарить забыла ))))) |
|
{quote}{login=Лузер™}{date=21.07.2009 02:43}{thema=}{post}В модуль ЭтаКнига: Я вставил указанный вами код в окно кода. Private Sub Workbook_Open() При этом в окне Project у меня «ЭтаКнига» (была выделена) была вложена в «Microsoft Excel objects», последний был включен VBAProject (Книга1.xls) |
|
вот это дело Sub save20() переставьте в какой-нибудь Module, так как Workbook_Open ищет эту функцию именно там, а не в ЭтойКниге. Попробуйте |
|
Private Sub Workbook_Open() -Это код, который срабатывает при запуске файла. Он вызывает макрос save20? |
|
А давайте будем подписываться, а то не понятно, это мне предлагают функцию переименовать или просто еще помошники есть |
|
Polisimus Пользователь Сообщений: 15 |
{quote}{login=Mario}{date=22.07.2009 05:28}{thema=}{post}А давайте будем подписываться, а то не понятно, это мне предлагают функцию переименовать или просто еще помошники есть{/post}{/quote} |
Polisimus Пользователь Сообщений: 15 |
это я первоначальный автор вопроса |
Polisimus Пользователь Сообщений: 15 |
Выдает ошибку: |
Polisimus Пользователь Сообщений: 15 |
{quote}{login=The_Prist}{date=22.07.2009 05:42}{thema=}{post}Если макрос в Module1(Модуль1), то следует заменить Me на thisWorkbook{/post}{/quote} Работает! Есть! |
{quote}{login=The_Prist}{date=22.07.2009 05:42}{thema=}{post}Если макрос в Module1(Модуль1), то следует заменить Me на thisWorkbook{/post}{/quote} Ага, как в моем примере с закрытием |
|
Polisimus Пользователь Сообщений: 15 |
#18 22.07.2009 18:03:12 После открытия файла Книга1.xls я его тут же под этим же именем сохранил, но в текстовом формате. Запустил макрос save20. И он работает — сохраняет текст активного листа. Отлично! |
Сохранение файла в определенное время |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
0 / 0 / 0 Регистрация: 11.11.2009 Сообщений: 28 |
|
1 |
|
02.05.2012, 16:51. Показов 6682. Ответов 11
нужно чтобы без прерывания работающих форм документ сохранялся в 23:00. под именем действующей даты! Добавлено через 1 час 59 минут
0 |
Заблокирован |
|
02.05.2012, 19:03 |
2 |
без прерывания работающих форм документ сохранялся в 23:00. Поясни, о чём эта фраза? Что за формы? Модальные или нет? Пользовательские (типа UserForm1) или системные (типа SaveAs… или Найти и заменить)?
0 |
0 / 0 / 0 Регистрация: 11.11.2009 Сообщений: 28 |
|
02.05.2012, 19:13 [ТС] |
3 |
формы пользовательские, при открытии документа они сразу щапускаются, юзер не видит что происходит в самом документе! мне надо чтобы этот документ сам сохранялся в папку, а вместо имени была дата сохранения! все это должно происходить не закрывая формы и рабочий документ через который запущенный формы и без всяких уведомлений!
0 |
Заблокирован |
|
02.05.2012, 19:27 |
4 |
Попробуй —
1 |
0 / 0 / 0 Регистрация: 11.11.2009 Сообщений: 28 |
|
02.05.2012, 19:54 [ТС] |
5 |
как настроить авто сохранение есть! спасибо большое!))) Добавлено через 13 минут Добавлено через 2 минуты
0 |
Заблокирован |
||||
02.05.2012, 20:03 |
6 |
|||
он переписывает фаил или все таки в разные записывает? Он делает всё согласно заданию — перезаписывает файл в указанное время без лишних вопросов!
Отлаживать сутками, дожидаясь 23:00 стрёмно ЗЫ: И имя файла в формате ГГММДД я считаю наиболее удобным в плане последующих сортировок, поисков и т.д.
2 |
17993 / 7619 / 890 Регистрация: 25.12.2011 Сообщений: 11,352 Записей в блоге: 17 |
|
02.05.2012, 20:05 |
7 |
Если будете сохранять 1 раз в сутки (23.00), то разные файлы (по дате).
0 |
0 / 0 / 0 Регистрация: 11.11.2009 Сообщений: 28 |
|
02.05.2012, 20:43 [ТС] |
8 |
товарищи большое спасибо!!! Добавлено через 6 минут
0 |
Заблокирован |
||||
02.05.2012, 20:46 |
9 |
|||
Какой момент в этом коде вызывает вопрос?
0 |
0 / 0 / 0 Регистрация: 11.11.2009 Сообщений: 28 |
|
02.05.2012, 20:53 [ТС] |
10 |
блин он сохраняет но не автоматически а в ручную!
0 |
Заблокирован |
|
02.05.2012, 21:29 |
11 |
он сохраняет но не автоматически а в ручную! А поподробнее можно? Прикладывай своё творение ввиде XLS-файла (скрепка в расширенном режиме, выбрать, !загрузить!!!) Никому уже не понять, что Вы там с полканом учудили
0 |
0 / 0 / 0 Регистрация: 11.11.2009 Сообщений: 28 |
|
02.05.2012, 22:02 [ТС] |
12 |
к сожалению не могу! это давольно токи секретный проэкт! все делаю по тому листу который ты дал! проверил три раза пока не запустишь макрос вручную ни чего не сохраняется! Добавлено через 1 минуту
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
02.05.2012, 22:02 |
Помогаю со студенческими работами здесь Заданное время в vb Заданное время Вывод в заданное время MessageBox на заданное время… Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 12 |
Добрый день, уважаемые форумчане!
Сразу говорю, что в Excel я чайник, занимаюсь совершенно иным. Однако же, возникла необходимость…
Что нужно — чтобы в процессе работы с книгой Excel периодически выполнялось сохранение файла (текущей книги). Не автосохранение, которое можно прописать в Excel, а именно сохранение — эквивалент того, что происходит по Ctrl/S. Это нужно, чтобы Dropbox увидел изменившийся файл и создал новую версию файла — таким образом, мы получаем последовательность версий, отстоящих друг от друга, например, на 3 минуты, и если бухгалтер под действием выкуренной дури накосячит — чтобы можно было взять файл отчёта по состоянию на N минут назад. Всё бы хорошо, но автосохранение не трогает сам файл, с которым работают, — вместо этого некие данные пишутся в некие другие файлы, по которым Excel потом может что-то там восстановить — но это совсем не то, что нам требуется.
Порывшись немного в нете, сделал макрос (текст чуть ниже). Всё работает замечательно, каждые 3 минуты файл сохраняется, но теперь другая беда — кнопки «Отменить действие» и «Отменить отмену» при работе макроса неактивны.
Т.е., если я даже просто вношу число в ячейку, то удалить его можно только затерев вручную, отмены нет.
А теперь, собственно, вопросы…
1. Почему не работают кнопочки Undo / Redo, и как сделать, чтобы они работали?
2. Можно ли вызывать ActiveWorkbook.Save() по событиям таймера, программируя их с нужным интервалом, а не крутить в тесном цикле?
3. Возможно, проблему с регулярным сохранением файла можно решить вообще без макроса? (программировать бухгалтера на нажатие Ctrl/S каждые 3 минуты не предлагать )))
Sub Delay(dblSecs As Double)
Const OneSec As Double = 1# / (1440# * 60#)
Dim dblWaitTil As Date
dblWaitTil = Now + OneSec * dblSecs
Do Until Now > dblWaitTil
DoEvents ' Allow windows messages to be processed
Loop
End Sub
Sub Auto_Open()
Do Until False
Delay (180) ' Save the document every 180 seconds
ActiveWorkbook.Save
Loop
End Sub
Skip to content
Как создать резервную копию книги с сегодняшней датой
На чтение 2 мин. Просмотров 2.7k.
Что делает макрос: Макрос позволяет создать резервную копию книги и сохраняет ваш файл в папке с сегодняшней датой.
Содержание
- Как это работает
- Код макроса
- Как работает этот код
- Как использовать
Как это работает
Хитрость данного макроса заключается в сопоставлении частей файла. Новое имя файла состоит из трех частей: путь, исходный файл и сегодняшняя дата.
Путь определяем с помощью свойства Path объекта ThisWorkbook.
Второй частью нового файла является исходное имя файла. Мы используем свойство Name объекта ThisWorkbook.
Текущую дату берем с помощью функции Date. Вы заметите, что мы форматируем дату (Format (Date, «мм-дд-гг»)). Это происходит потому, что по умолчанию функция даты возвращает мм / дд / гггг. Мы используем дефис вместо слэша, иначе это вызовет ошибку при попытке сохранить файл (Windows не позволяет использовать «/» в именах файлов.)
Код макроса
Sub SozdatRezervnuyuKopiyu() 'Сохранить книгу с новым именем ThisWorkbook.SaveCopyAs _ Filename:=ThisWorkbook.Path & "" & _ Format(Date, "mm-dd-yy") & " " & _ ThisWorkbook.Name End Sub
Как работает этот код
Используем одну единственную строку, которая с помощью метода SaveCopyAs создает новый имя файла и использует метод для сохранения файла.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код во вновь созданном модуле.