Страницы: 1
RSS
Макрос - Автоматическое сохранение файла через заданный промежуток времени
 
Есть файл Книга1.xls. Этот файл сохранен в каталоге «Мои документы». Нужно, чтоб при работе с этим файлом он автоматически сохранялся через каждые 20 секунд. Можно ли создать такой макрос? Как будет выглядеть его полный код (VBA для меня – темный лес, умею только записывать действия в макрос)? И как его запустить один раз (пусть даже после, а не в момент открытия файла Книга1.xls) и до конца сеанса работы с файлом Книга1.xls?
 
В модуль ЭтаКнига:  
Private Sub Workbook_Open()  
Call save20  
End Sub  
Sub save20()  
Me.Save  
Application.OnTime Now + TimeValue("00:00:20"), "save20"  
End Sub
Bite my shiny metal ass!      
 
Помогите, вставила этот макрос в оооочень важный файл, переделала его не под сохранение а закрытие, и теперь он открывется буквально на несколько секунд, я не могу ничего успеть. Что делать?????????? Я просто в отчаянии
 
не подумала, а как сделать чтоб закрывался через 30 сек?????
 
Я так понял, что 20 сек не хватало, а 30 вполне достаточно?  
Чтобы он не закрывался сразу, отключите макросы, повысив уровень безопасности.
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=22.07.2009 03:14}{thema=}{post}Я так понял, что 20 сек не хватало, а 30 вполне достаточно?  
Чтобы он не закрывался сразу, отключите макросы, повысив уровень безопасности.{/post}{/quote}  
 
 
 
Я так и сделала )))) до того как мне кто-то ответил )))))) Все-таки женская логика существует, сейчас попробую ваш вариант по закрытию ))) Спасибо
 
Пишет что невозможно выполнить макрос в такой-то книге, возможно данный макрос отсутствует, либо все макросы отключены. Все у меня есть((((( Пока писала поняла в чем проблема, функцию Close30 в макросы засунуть нужно а не в КНИГУ1. ГЛУПАЯЯЯЯЯЯЯЯЯ
 
СПАСИБО ОГРОМНОЕ, на радостях поблагодарить забыла )))))
 
{quote}{login=Лузер™}{date=21.07.2009 02:43}{thema=}{post}В модуль ЭтаКнига:  
Private Sub Workbook_Open()  
Call save20  
End Sub  
Sub save20()  
Me.Save  
Application.OnTime Now + TimeValue("00:00:20"), "save20"  
End Sub{/post}{/quote}  
 
Я вставил указанный вами код в окно кода.    
 
Private Sub Workbook_Open()  
Call save20  
End Sub  
Sub save20()  
Me.Save  
Application.OnTime Now + TimeValue("00:00:20"), "save20"  
End Sub  
 
При этом в окне Project у меня "ЭтаКнига" (была выделена) была вложена в "Microsoft Excel objects", последний был включен VBAProject (Книга1.xls)  
Я сохранил этот код (нажав на кнопку флопидиска) и запустил его через команду Run, но он мне через 20 секунд выдал сообщение "Не найден макрос "C:\Documents and settings\Мои Документы\Книга1.xls'!save20'. Мне нужно, чтобы открытый файл сохранялся под своим же именем не один раз, а через каждые 20 секунд, пока я его не закрою.
 
вот это дело  
 
Sub save20()  
Me.Save  
Application.OnTime Now + TimeValue("00:00:20"), "save20"  
End Sub  
 
переставьте в какой-нибудь Module, так как Workbook_Open ищет эту функцию именно там, а не в ЭтойКниге. Попробуйте
 
Private Sub Workbook_Open()  
Call save20  
End Sub  
 
-Это код, который срабатывает при запуске файла. Он вызывает макрос save20?  
Я сам дундук по ВБА. Попробуй поэкспериментируй - замени в этом коде save20 на Макрос1, который просто будет, например, копировать содержимое одной ячейки в другую.
 
А давайте будем подписываться, а то не понятно, это мне предлагают функцию переименовать или просто еще помошники есть
 
{quote}{login=Mario}{date=22.07.2009 05:28}{thema=}{post}А давайте будем подписываться, а то не понятно, это мне предлагают функцию переименовать или просто еще помошники есть{/post}{/quote}
 
это я первоначальный автор вопроса  
я уже поэкспериментировал тут с - вместо save20 поставить уже записанный Макрос1.  
Да, действительно срабатывает. Так оно и есть - макрос запустил Макрос1 с открытием файла автоматически. А вот со вторым кодом я пока разбираюсь. Там нужно в окне проекты редактора ВБА просто вставить новый модуль. И в нем уже писать второй код? Сейчас попробую.
 
Выдает ошибку:  
Compile error:  
Invalid use of Me keyword.
 
{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}  
 
Ага, как в моем примере с закрытием
 
После открытия файла Книга1.xls я его тут же под этим же именем сохранил, но в текстовом формате. Запустил макрос save20. И он работает - сохраняет текст активного листа. Отлично!
Страницы: 1
Читают тему
Наверх